Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Jika pernyataan dalam klausa Where

CASE mungkin bisa membantu Anda:

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;

Pernyataan CASE mengevaluasi beberapa kondisi untuk menghasilkan satu nilai. Jadi, dalam penggunaan pertama, saya memeriksa nilai status_flag, mengembalikan 'A', 'T' atau nol tergantung pada nilainya, dan membandingkannya dengan t.status. Saya melakukan hal yang sama untuk kolom business_unit dengan pernyataan CASE kedua.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa saya tidak dapat membuat pemicu pada objek yang dimiliki oleh SYS?

  2. Menjatuhkan pengguna yang terhubung dalam database Oracle

  3. Perusahaan Perangkat Lunak yang mengerjakan Oracle D2k, Teknologi PLSQL di Noida

  4. Haruskah saya mengindeks kolom kunci utama di Oracle?

  5. Memulai Oracle SQL Developer di Windows