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

So sánh chuỗi trong Oracle Case khi

Bạn đang kiểm tra các chuỗi sẽ tạo ra một chuỗi trống, do đó có vấn đề; trong Oracle, bạn nên kiểm tra xem chuỗi 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 

Về cách Oracle xử lý chuỗi rỗng và chuỗi rỗng, tại đây bạn tìm thấy một cái gì đó nhiều hơn nữa

Ví dụ:

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

cho:

'' = ''           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

Nói một cách dễ hiểu, kiểm tra duy nhất bạn có thể dựa vào khi nói về NULL , là: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. Tạo tệp PDF với PLSQL trong Oracle

  2. SQL (oracle) để so sánh hai danh sách

  3. kiểu dữ liệu không nhất quán:khi trả về bảng từ con trỏ trong một hàm gói - ORACLE

  4. Oracle thay thế dấu hoa thị cho tất cả các cột trong một khung nhìn

  5. Truy vấn sql để kiểm tra xem chuỗi con của cột 1 có chứa giá trị của cột khác hay không