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

ISNULLおよびISNOTNULLでのCaseステートメントの使用

    caseを誤用しています 表現。 2つの形式があります。必要なフォームは次のとおりです:

    (CASE WHEN userName IS NULL THEN 'was null'
          WHEN userName IS NOT NULL THEN 'was not null'
     END) AS caseExpressionTest
    

    注:userNameはありません CASEの後 。

    これにより、最初に停止する各条件がチェックされます。

    MySQLはブール値を有効な値として解釈します。したがって、バージョンは次のいずれかになります。

    -- when userName is NULL
    (CASE userName
        WHEN 0 THEN 'was null'
        WHEN 1 THEN 'was not null'
    END AS caseExpressionTest
    

    これにより、NULLが返されます 。

    または:

    -- when userName is not NULL
    (CASE userName
        WHEN 1 THEN 'was null'
        WHEN 0 THEN 'was not null'
    END AS caseExpressionTest
    

    おそらく、userName 文字列です。これにより、userNameが変換されます 先頭の数字に基づく整数に。先頭の数字がない場合は、0を取得します 、それが一致する理由です。



    1. データベースからメールを選択して送信します

    2. SQLServer2008でパラメーター化されたVIEWを作成する

    3. PostgreSQLで文字列を連結する方法

    4. PHP/MySQLユーザーの最後のログインからの表示時間