【SQLServer】NULL値を別の値に置き換える方法を解説

スポンサーリンク

データベースを扱う際に、NULL 値が含まれていると、意図しない動作を引き起こすことがあります。たとえば、計算結果が NULL になったり、レポートでデータが欠損して表示されたりすることがあります。そのため、NULL を適切な値に置き換える方法を知っておくことは重要です。

SQL Server では、NULL を別の値に置き換える方法として、ISNULL 関数や COALESCE 関数、CASE 式などが用意されています。本記事では、それぞれの方法の使い方と、どのような場面で活用できるのかを詳しく解説します。

NULL値を置き換える方法

SQL Server では、NULL 値を別の値に置き換えるためのさまざまな方法が用意されています。ここでは、主に以下の3つの方法を紹介します。

  1. ISNULL 関数を使う
  2. COALESCE 関数を使う
  3. 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はコミュニティのサポートもしており、質問や情報交換も行えるため、学習を進めている中で浮かんだ疑問などを解消する手助けを受けることもできます。

IT資格の人気オンラインコース

Udemyは定期的に90%OFFなどの規模でセールを開催しているので、そのタイミングを狙うのもありでしょう。今までにセールが開催された時期をまとめました。

  • 季節ごとのセール
    年末年始や夏季、春季などの特別な時期に大規模なセールを実施
  • 祝日セール
    バレンタインデー、感謝祭、クリスマスなどの祝日にもセールを実施
すぐに役立つスキルを 身につけよう! セール開催中!

コメント