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

Bandingkan String di Oracle Case When

Anda memeriksa string terhadap string kosong, sehingga mengalami masalah; di Oracle Anda sebaiknya memeriksa apakah string Anda is not null :

SELECT CASE WHEN '7C54D3E133830A78E040A8C010014B7D' is not null
            THEN '7C54D3E133830A78E040A8C010014B7D'
            WHEN 'e84a4433966c4b8996ce34905acff63d' is not null
            THEN 'e84a4433966c4b8996ce34905acff63d'
            WHEN '7faa9126b1c6412fa58375ab2b2be1db' is not null
            THEN '7faa9126b1c6412fa58375ab2b2be1db'
            ELSE NULL
 END
 FROM DUAL 

Tentang cara Oracle memperlakukan string kosong dan null, di sini Anda menemukan sesuatu yang lebih

Contoh:

select q'['' = '']'         , case when '' = ''            then 'YES' else 'NO' end from dual union all
select q'['' is null]'      , case when '' is null         then 'YES' else 'NO' end from dual union all 
select q'['' = null ]'      , case when '' = null          then 'YES' else 'NO' end from dual union all 
select q'[null = null]'     , case when null = null        then 'YES' else 'NO' end from dual union all 
select q'[null is null]'    , case when null is null       then 'YES' else 'NO' end from dual union all 
select q'['' != '']'        , case when '' != ''           then 'YES' else 'NO' end from dual union all
select q'['' is not null]'  , case when '' is not null     then 'YES' else 'NO' end from dual union all
select q'['' != null ]'     , case when '' != null         then 'YES' else 'NO' end from dual union all
select q'[null != null]'    , case when null != null       then 'YES' else 'NO' end from dual union all
select q'[null is not null]', case when null is not null   then 'YES' else 'NO' end from dual

memberikan:

'' = ''           NO
'' is null        YES
'' = null         NO
null = null       NO
null is null      YES
'' != ''          NO
'' is not null    NO
'' != null        NO
null != null      NO
null is not null  NO

Singkatnya, satu-satunya cek yang dapat Anda andalkan, ketika berbicara tentang NULL , adalah:IS [NOT] NULL



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Saya Dapat Menghubungkan Flutter (Dart) dengan Oracle Server saya? Sudahkah Seseorang Mencoba ini?

  2. Apa yang harus saya gunakan alih-alih urutan untuk menghindari kesenjangan?

  3. Menggunakan kueri SQL untuk menentukan apakah ada tabel

  4. Dalam kondisi apa ROWNUM=1 secara signifikan meningkatkan kinerja dalam kueri gaya yang ada

  5. sbt unduh artefak dari repositori yang dilindungi kata sandi - driver Oracle jdbc sebagai ketergantungan yang dikelola