在T-Sql中的条件中使用Null变量

tri*_*ito 4 t-sql null

有没有办法以下列方式使用变量?

DECLARE @ID int;
SET @ID = NULL;
SELECT *
FROM Market market
WHERE market.ID IS @ID
Run Code Online (Sandbox Code Playgroud)

或者还有另一种方法吗?

谢谢.

Mar*_*ith 12

你需要这样做

SELECT *
FROM Market market
WHERE market.ID = @ID OR (@ID IS NULL AND market.ID IS NULL)
Run Code Online (Sandbox Code Playgroud)

只是为了完整性,目前仍有可能

SET ANSI_NULLS OFF

SELECT *
FROM Market market
WHERE market.ID = @ID
Run Code Online (Sandbox Code Playgroud)

但你不应该.不推荐使用此选项.相当有趣的相关博客文章