Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Câu lệnh If trong mệnh đề Where

CASE có thể giúp bạn:

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;

Câu lệnh CASE đánh giá nhiều điều kiện để tạo ra một giá trị duy nhất. Vì vậy, trong lần sử dụng đầu tiên, tôi kiểm tra giá trị của status_flag, trả về 'A', 'T' hoặc null tùy thuộc vào giá trị của nó là gì và so sánh với t.status. Tôi làm tương tự cho cột business_unit với câu lệnh CASE thứ hai.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. postgreSQL mysql oracle khác biệt

  2. Trường Boolean trong Oracle

  3. Cách sử dụng ora_hash trên một cột kiểu dữ liệu xmltype

  4. Bán phá giá khối dữ liệu

  5. Các chức năng phân tích LEAD và LAG