sql >> Database >  >> RDS >> Oracle

Oracle [Procedure] - Somfunctie negeert WHERE-clausule

Uw probleem is dat uw invoerparameter dezelfde naam heeft als uw kolom, dus wanneer de query ziet

WHERE SCOTT.EMP.DEPTNO = deptno

het interpreteert deptno als SCOTT.EMP.DEPTNO , wat betekent dat het waar is voor alle waarden van deptno . Wijzig de naam van uw invoerparameter en de query werkt zoals verwacht.

Gebruik ook NVL om ervoor te zorgen dat de individuele SUM waarden zijn niet NULL , alsof een van beide NULL is dat maakt de som van hen NULL ook d.w.z.

select NVL(SUM(SAL), 0) INTO SALSUM FROM SCOTT.EMP WHERE SCOTT.EMP.DEPTNO = numerdept;
select NVL(SUM(COMM), 0) INTO COMMSUM FROM SCOTT.EMP WHERE SCOTT.EMP.DEPTNO = numerdept;



  1. MySQL SIN() Functie – Retourneer de sinus van een getal in MySQL

  2. Hoe kan ik rijen in omgekeerde volgorde selecteren in MySQL?

  3. MySQLdb kan tekenset utf-8-fout niet initialiseren

  4. Permanente aanmelding PHP en SQL