データベースを扱う際に、NULL 値が含まれていると、意図しない動作を引き起こすことがあります。たとえば、計算結果が NULL になったり、レポートでデータが欠損して表示されたりすることがあります。そのため、NULL を適切な値に置き換える方法を知っておくことは重要です。
SQL Server では、NULL を別の値に置き換える方法として、ISNULL 関数や COALESCE 関数、CASE 式などが用意されています。本記事では、それぞれの方法の使い方と、どのような場面で活用できるのかを詳しく解説します。
SQLServerを日々使っていると、「自分のスキルって転職市場でどう評価されるんだろう?」と気になる方も多いのではないでしょうか。
実際、SQLServerを扱えるエンジニアは業務系企業や社内SE領域で高く評価される傾向があります。
SQLスキルを活かせる転職先を探したい方はこちらが参考になります。ぜひご覧ください。

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の操作は、実務の現場でもよく使われる内容です。
もしあなたが、
「もっとこのスキルを活かせる職場に移りたい」
「SQLの知識があるのに評価されない職場でくすぶっている」
そんな思いを持っているなら、一度転職市場での評価をチェックしてみるのもアリです。

コメント