Skip to content

ANSI NULLS

test ANSI NULLS ON / OFF

CREATE TABLE #tmpx (i int, v float);
INSERT INTO #tmpx VALUES (1, 1.1), (2, null);

SET ANSI_NULLS ON;
GO

DECLARE @val float;
set @val=1;

select * from #tmpx where v <> @val;
GO

# column with column comparison does not work
select t2.* from #tmpx as t2
join (select * from #tmpx) as t1
on t1.i = t2.i
where t1.v <> t2.i
GO

DECLARE @json1 nvarchar(100);
SET @json1 = N'[{"i": 1, "v": null}, {"i": 2, "v": 3.3}]';

MERGE #tmpx WITH (XLOCK, ROWLOCK) AS t
USING ( 
    SELECT * FROM OPENJSON(@json1) 
        WITH (i int, v float) 
) AS j
ON t.i = j.i
WHEN MATCHED AND t.v <> j.v
THEN UPDATE
    SET t.v = j.v
WHEN NOT MATCHED BY TARGET THEN
    INSERT (i, v) VALUES (j.i, j.v)
;
GO