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

Ако изявление в рамките на клауза Къде

CASE може да ви помогне:

SELECT t.first_name,
       t.last_name,
       t.employid,
       t.status
  FROM employeetable t
 WHERE t.status = (CASE WHEN status_flag = STATUS_ACTIVE THEN 'A'
                        WHEN status_flag = STATUS_INACTIVE THEN 'T'
                        ELSE null END)
   AND t.business_unit = (CASE WHEN source_flag = SOURCE_FUNCTION THEN 'production'
                               WHEN source_flag = SOURCE_USER THEN 'users'
                               ELSE null END)
   AND t.first_name LIKE firstname
   AND t.last_name LIKE lastname
   AND t.employid LIKE employeeid;

Инструкцията CASE оценява множество условия, за да произведе една стойност. Така че, при първото използване, проверявам стойността на status_flag, връщайки 'A', 'T' или null в зависимост от това каква е стойността и сравнявам това с t.status. Правя същото за колоната business_unit с втори оператор CASE.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Политика за корекция

  2. Използване на параметри с Oracle ODBC връзка

  3. Примерни схеми на GitHub

  4. Как да експортирате празни таблици в oracle

  5. Функция ASIN() в Oracle