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

T-SQLでレコードがNULLの場合に文字列を置き換える方法

    COALESCEを使用できます またはISNULL 。前者は標準であり、最初のNOT NULLを返します 引数(またはNULL すべての引数がNULLの場合 )

    SELECT COALESCE(micv.value,'Pending') as value
    

    ISNULL 引数は2つに制限されていますが、テストする最初の値の評価にコストがかかる場合(サブクエリなど)、SQLServerではより効率的です。

    ISNULLの潜在的な「落とし穴」の1つ 注意すべき点は、最初のパラメーターのデータ型を返すため、置換される文字列が列のデータ型よりも長い場合は、キャストが必要になることです。

    例:

    CREATE TABLE T(C VARCHAR(3) NULL);
    
    INSERT T VALUES (NULL);
    
    SELECT ISNULL(C,'Unknown')
    FROM T
    

    Unkを返します

    ただし、ISNULL(CAST(C as VARCHAR(7)),'Unknown') またはCOALESCE どちらも希望どおりに機能します。



    1. SQLServerにログインできません+SQLServer認証+エラー:18456

    2. 最後のSQLクエリから挿入された行数をカウントする

    3. MySQL-階層内のすべてのサブアイテムを取得することは可能ですか?

    4. SQLServerのI/Oパフォーマンスの分析