値が NULL かを確認するには 「IS NULL」、NULL 以外か確認するには「IS NOT NULL」を使用します。 「= NULL」 では判定できません。
SELECT で NULL のレコードを検索
NULL のレコードを検索SELECT * FROM [テーブル名]
WHERE [カラム名] IS NULL;
NULL以外 のレコードを検索
SELECT * FROM [テーブル名]
WHERE [カラム名] IS NOT NULL;
IF で 値が NULL か判定
IF @変数 IS NULL BEGIN
PRINT('NULLです');
END
IF @変数 IS NOT NULL BEGIN
PRINT('NULLではありません');
END
IIF で 値が NULL か確認
SELECT IIF([カラム名] IS NULL, 'NULLです', 'NULLではありません')
FROM [テーブル名];
SELECT IIF([カラム名] IS NOT NULL, 'NULLではありません', 'NULLです')
FROM [テーブル名];
CASE WHEN で 値が NULL か確認
SELECT
CASE WHEN [カラム名] IS NULL THEN 'NULLです' ELSE 'NULLではありません' END
FROM [テーブル名];
SELECT
CASE WHEN [カラム名] IS NOT NULL THEN 'NULLではありません' ELSE 'NULLです' END
FROM [テーブル名];
検証環境
- Microsoft SQL Server 2019 (RTM-CU10) (KB5001090) - 15.0.4123.1 (X64) Mar 22 2021 18:10:24 Copyright (C) 2019 Microsoft Corporation Express Edition (64-bit) on Linux (Ubuntu 20.04.2 LTS) <X64>
- Docker image: mcr.microsoft.com/mssql/server:2019-latest
- Docker Desktop 3.3.3(64133)
- Docker Engine 20.10.6
- Microsoft SQL Server Management Studio v18.8(15.0.18369.0)
- Microsoft Windows 10 Pro Version 20H2 OS Build 19042.985 Experience: Windows Feature Experience Pack 120.2212.2020.0