SQL COALESCE関数とNULL

SQL COALESCE関数をいつ使用するかを知ることは、NULLを扱うときに命の恩人です。

ご存知のように、NULLはトリッキーな概念であり、式でNULLが”触れる”ように見えるため、結果がNULLになります。 だから、NULLを扱っているとき、どのようにサイクルから抜け出すことができますか? つまり、代わりに別の値をどのように表示できますか?

これがSQL COALESCEの出番です。 この関数を使用すると、NULLをテストし、存在する場合はNULLを別の値に置き換えることができます。

COALESCEとは何ですか?,

COALESCEは組み込みのSQLServer関数です。 NULLを別の値に置き換える必要がある場合は、COALESCEを使用します。 これは次の形式をとります。

COALESCE(value1, value2, ..., valuen)

値リストから最初の非NULLを返します。

ラーマンズベースボールデータベースから野球公園を考えてみましょう。, Parknameをparkaliasの代わりに表示したい場合は、NULLの可能性がありますが、COALESCEはここでうまく機能します。

SELECT COALESCE(parkalias,parkname)As ParkAlias,city,stateFROM Parks
-- AnswerSELECT COALESCE(parkalias, parkname) as ParkAlias, city, stateFROM Parks

この例では、coalesce(parkalias,parkname)は、値がnullでない場合にPARKALIASで見つかった値を返しますが、nullの場合はparknameが返されます。

parkaliasがNULLの場合、’Unknown’を表示したい場合はどのSQLを書きますか?, クエリを書こうとしないのはなぜですか…ここでは始まりです…

SQL COALESCEをCASEと比較する

SQL COALESCEがCASE文のショートカットであることを知っていましたか?列answerID、option1、option2、option3を持つテーブルsurveyを考えてみましょう。

answerIDと最初のNULL以外のオプションをリストしたいと思います。

私たちが学んだことから、COALESCEを次のように使用できます。

SELECT answerID,
COALESCE(option1, option2, option3, 'No Option Selected')
FROM survey

これはこのCASEステートメントのショートカットです。

SELECT answerID,
CASE
WHEN option1 is not NULL then option1
WHEN option2 is not NULL then option2
WHEN option3 is not NULL then option3
ELSE 'No Option Selected'
END
FROM survey

CASEはより多くの状況で使用されますが、NULLを置き換えるときはCOALESCEが便利なショートカットです!,

記録のために、SQL Serverは学び、探索するために、より多くの興味深い機能を持っています。 まだ行っていない場合は、次の文字列関数をチェックしてテキストデータを操作してください!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ツールバーへスキップ