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

di mana klausa memilih kode istilah

Sejauh yang saya tahu tidak ada tipe boolean di Oracle SQL, jadi Anda tidak dapat memiliki CASE ekspresi yang mengevaluasi ke nilai boolean. Untungnya, dalam kasus khusus Anda, Anda tidak membutuhkannya:

and TERM_CODE = :parm_DD_TermCode.TERM_CODE
and GPA_TERM_CODE = CASE
  WHEN TERM_CODE LIKE '%80'
       THEN SUBSTR(:parm_DD_TermCode.TERM_CODE, 1, 4) || '50'
  WHEN TERM_CODE LIKE '%50'
       THEN SUBSTR(:parm_DD_TermCode.TERM_CODE, 1, 4) || '10'
  WHEN TERM_CODE LIKE '%10'
       THEN to_char(to_number(SUBSTR(:parm_DD_TermCode.TERM_CODE, 1, 4)) - 1) || '80'
  END

Seperti yang Anda lihat, saya juga telah menambahkan beberapa konversi tipe eksplisit:mempercayai konversi implisit SQL adalah IDE YANG KHUSUS BURUK . Kode di atas mengasumsikan bahwa TERM_CODE dan GPA_TERM_CODE adalah string.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menyetel SQL

  2. Fungsi JSON_TABLE() di Oracle

  3. Bulan antara tidak mengembalikan nilai yang benar

  4. Manajer Perusahaan Kontrol FMW 11g di R12.2

  5. Fungsi GREATEST() di Oracle