1. ホーム
  2. tsql

[解決済み] T-SQL CASE句。WHEN NULLの指定方法

2022-03-04 20:11:16

質問

このようなT-SQLステートメントを書きました(オリジナルは違うようですが、ここでは簡単な例を挙げたいと思います)。

SELECT first_name + 
    CASE last_name WHEN null THEN 'Max' ELSE 'Peter' END AS Name
FROM dbo.person

このステートメントには構文エラーはありませんが、case-clauseは常にELSE-partを選択します - last_nameがNULLの場合にも。しかし、なぜでしょうか?

やりたいことはfirst_nameとlast_nameを統合することですが、last_nameがNULLの場合、名前全体がNULLになります。

SELECT first_name +
   CASE last_name WHEN null THEN '' ELSE ' ' + last_name END AS Name 
FROM dbo.person

どこに問題があるか知っていますか?

解決方法は?

CASE WHEN last_name IS NULL THEN '' ELSE ' '+last_name END