Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle процедура с case Зависи от параметъра

CURSOR c
IS
  SELECT COMPANYID,
         GROUPID,
         PERIODID,
         FN_PPROCESSCURRENT
FROM LIQUIDATIONSDETAILS
   WHERE     PROCESSID = FN_PPROCESSPREVIOUS
         AND (UNCOLLECTED > 0 OR INVOICE = 0)
         AND (((GROUPID = vgroupid) AND (vgroupid > -1)) OR (vgroupid = -1))

например:ако vgroupid = -1 , тогава последното условие ще бъде (((GROUPID = -1) AND (-1 > -1)) OR (-1 = -1)) или ((forever_false AND forever_false) OR (forever_true)) или (-1 = -1) - всички записи

вместо това, ако vgroupid = 123 последното условие ще бъде (((GROUPID = 123) AND (123 > -1)) OR (123 = -1)) или (((GROUPID = 123) and forever_true) OR (forever_false)) или (GROUPID = 123) - само 123 GROUPID




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Сървърът на Oracle 12c не може да бъде достъпен от отдалечен компютър чрез .Net доставчика

  2. Имам нужда кодът на цената да бъде поискан само ако тип :=E

  3. Java SQL изключение:Затворен набор от резултати:следващ, въпреки че нито връзката, нито наборът от резултати не се затварят

  4. Oracle SQL:Как да покажа празни седмици / седмици без данни?

  5. Научете как да изпълните процедура в Toad For Oracle