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を使用して外部キーを作成するにはどうすればよいですか?