sql >> データベース >  >> RDS >> Oracle

Oracleの場合の文字列の比較

    空の文字列に対して文字列をチェックしているため、問題が発生しています。 Oracleでは、文字列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 
    

    Oracleが空の文字列とnullを処理する方法については、ここ もっと何かを見つけます

    例:

    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
    

    与える:

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

    つまり、NULLについて話すときに、信頼できる唯一のチェックです。 、is:IS [NOT] NULL



    1. Node.js用のどのMySQLドライバーがWindowsで動作しますか?

    2. Postgresql-ファイルから読み込むときにINSERTステートメントの表示を無効にする方法はありますか?

    3. LOADDATAINFILEを使用してCSVファイルからMySQLデータベースに選択した列を挿入する方法

    4. OracleでONUPDATECASCADEを使用して外部キーを作成するにはどうすればよいですか?