SQL Server | NULLの動きを解説

【注目記事】

・SEの転職体験談 | 受託開発から自社製品開発へ
・SIer勤務のSEがパソナキャリアに相談してみた
・SIer勤務のSEがマイナビエージェントに相談してみた

SQL ServerはNULLの場合の動きが独特なので、忘れないようにまとめます。

関数

下記の関数の引数にNULLを渡した場合、エラーになりそうですが結果はNULLになります。

  • CONVERT
  • DATEADD

比較

テーブル結合時のNULL

INNER JOINの結合条件(ON句)の列にNULLがある場合、下記の動作になります。

条件がイコール(=)の場合

  • お互いの列がNULLでも不一致扱いになり、対象レコードは取得できない

条件がノットイコール(<>)の場合

  • 一方の列がNULLもう一方がNULL以外でも不一致扱いになり、対象レコードは取得できない
  • お互いの列がNULLでも不一致扱いになり、対象レコードは取得できない

条件がIS NULLの場合

対象の列がNULLであれば一致扱いになり、対象レコードが取得できる

NULLを考慮する場合はIS NULL(もしくはIS NOT NULL)を使いましょう。

検索時(WHERE)のNULL

WHERE句で指定した列にNULLがある場合、イコール(=)でもノットイコール(<>)でも対象のレコードを取得できません。

NULLを考慮する場合はIS NULL(もしくはIS NOT NULL)を使いましょう。

文字列結合の際、NULLがあると結果はNULLになる

集約

GROUP BYで指定した列にNULLが含まれる場合、NULLで集約します。

SQLスキルを高めるためのおススメ書籍

SQLのスキルを高めるには、学校の試験勉強と同じように多くの問題を解いてみるのが効率的です。

『スッキリわかるSQL入門 第2版 ドリル222問付き! (スッキリシリーズ)』は、SQLの基本的な内容の解説に加え、200問を超える問題が掲載されているので、SQL初心者が学習に使うのにおススメです。

実際、この書籍を新卒1年目の新人さんに2-3週間かけて取組んでもらったことがあり、書籍を読んだ後に簡単なSQLの改修を任せましたが、基本的な部分にはつまずかずに改修を進められました。

コメントを残す

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