0
我正在使用ANSI_NULLS
设置为ON
。我需要更新我的查询以允许参数传递一个空值。下面的查询在JOIN
中有CASE
声明。 SQL Server不喜欢语法。如何构建SQL查询以允许空值
我需要有JOIN
看空值,如果@MyColumn
参数是NULL
,或者寻找中传递的价值。随着ANSI_NULLS
设置为ON
,我不能只是简单地设置MyColumn = @MyColumn
因为NULL
相当于NOTHING。我知道我需要使用IS NULL
语法。
如何正确格式化此查询以获得预期结果?
SET ANSI_NULLS ON
GO
CREATE PROCEDURE MySampleProc
@MyColumn INT
AS
SELECT
t2.MyColumn
FROM
Table1 t1
JOIN
Table2 t2 ON t2.Table2PK = t1.Table2FK
AND CASE
WHEN @MyColumn IS NULL THEN MyColumn IS NULL
ELSE MyColumn = @MyColumn
END