データベースを扱う際に、NULL
値が含まれていると、意図しない動作を引き起こすことがあります。たとえば、計算結果が NULL
になったり、レポートでデータが欠損して表示されたりすることがあります。そのため、NULL
を適切な値に置き換える方法を知っておくことは重要です。
SQL Server では、NULL
を別の値に置き換える方法として、ISNULL
関数や COALESCE
関数、CASE
式などが用意されています。本記事では、それぞれの方法の使い方と、どのような場面で活用できるのかを詳しく解説します。
NULL値を置き換える方法
SQL Server では、NULL
値を別の値に置き換えるためのさまざまな方法が用意されています。ここでは、主に以下の3つの方法を紹介します。
ISNULL
関数を使うCOALESCE
関数を使うCASE
式を使う
それぞれの使い方と違いについて詳しく見ていきましょう。
ISNULL関数を使う
ISNULL
関数は、指定した値がNULL
の場合に、代わりの値を返すシンプルな値です。
ISNULL(列名, 置き換えたい値)
使用例
以下のSQLは、customers
テーブルの name
列に NULL
が含まれている場合、それを '不明'
に置き換えます。
SELECT ISNULL(name, '不明') AS name
FROM customers;
実行結果

このように、NULL
の場合に '不明'
という値が表示されます。
COALESCE関数を使う
COALESCE
関数は、複数の値を指定し、左から順に NULL
でない最初の値を返します。
COALESCE(値1, 値2, 値3, ...)
使用例
以下のSQLは、phone
列が NULL
の場合に mobile
列の値を使用し、それも NULL
の場合は '未登録'
を表示します。
SELECT COALESCE(phone, mobile, '未登録') AS contact_info
FROM customers;
実行結果

ISNULL
と異なり、複数の値を順番にチェックできるのが特徴です。
CASE式を使う
CASE
式を使えば、NULL
の場合に限らず、より柔軟な条件設定が可能になります。
CASE
WHEN 列名 IS NULL THEN 置き換えたい値
ELSE 列名
END
使用例
以下のSQLは、salary
列が NULL
の場合に '未定'
を表示し、それ以外の場合は元の値をそのまま表示します。
SELECT
employee_name,
CASE
WHEN salary IS NULL THEN '未定'
ELSE CAST(salary AS VARCHAR)
END AS salary_info
FROM employees;
実行結果

この方法を使うと、より複雑な条件を追加できるのがメリットです。
以上のように、NULL
を別の値に置き換える方法にはいくつかの選択肢があります。それぞれの特徴を理解して、状況に応じて適切な方法を選択していきましょう!
まとめ
本記事では、SQL Server で NULL
値を別の値に置き換える方法について解説しました。
ISNULL
関数:シンプルにNULL
を特定の値に置き換えたい場合に便利。COALESCE
関数:複数の候補の中から最初のNULL
でない値を選びたい場合に有効。CASE
式:より柔軟な条件分岐を行いたい場合に適している。
データベースの NULL
値は、計算結果やレポートの出力に影響を与えることがあるため、適切に処理することが重要です。目的に応じて、これらの方法を使い分け、データの可読性や整合性を保ちましょう。
SQLServerを効率よく学びたい方はUdemyがおすすめ
もっとわかりやすくSQLServerを学びたいという方には、Udemyがおすすめです。Udemyは、オンライン学習を手軽に始められる便利なプラットフォームで、初心者から上級者向けまで、様々なレベルのSQLコースがそろっています。ですので自身のスキルや目的にあったコースを選ぶことができます。
また、Udemyはコミュニティのサポートもしており、質問や情報交換も行えるため、学習を進めている中で浮かんだ疑問などを解消する手助けを受けることもできます。
Udemyは定期的に90%OFFなどの規模でセールを開催しているので、そのタイミングを狙うのもありでしょう。今までにセールが開催された時期をまとめました。
- 季節ごとのセール
年末年始や夏季、春季などの特別な時期に大規模なセールを実施 - 祝日セール
バレンタインデー、感謝祭、クリスマスなどの祝日にもセールを実施
コメント