/* Case 1: X = NULL */
declare @i int = null;
set ansi_nulls off;
if @i = null
select 'True' as [Case 1, ansi_nulls OFF]
else
select 'FALSE' as [Case 1, ansi_nulls OFF];
set ansi_nulls on;
if @i = null
select 'True' as [Case 1, ansi_nulls ON]
else
select 'FALSE' as [Case 1, ansi_nulls ON];
if @i is null
select 'True' as [Case 1, ansi_nulls ON, solution]
else
select 'FALSE' as [Case 1, ansi_nulls ON, solution];
go
/* Case 2: CASE X WHEN NULL */
declare @i int = null;
set ansi_nulls off;
select case @i when null then 'True' else 'FALSE' end as [Case 2, ansi_nulls OFF];
set ansi_nulls on;
select case @i when null then 'True' else 'FALSE' end as [Case 2, ansi_nulls ON];
select case when @i is null then 'True' else 'FALSE' end as [Case 2, ansi_nulls ON, solution];
go