有没有办法按照以下方式使用变量?在T-Sql中的条件中使用空变量
DECLARE @ID int;
SET @ID = NULL;
SELECT *
FROM Market market
WHERE market.ID IS @ID
还有另一种方法可以做到这一点吗?
谢谢。
有没有办法按照以下方式使用变量?在T-Sql中的条件中使用空变量
DECLARE @ID int;
SET @ID = NULL;
SELECT *
FROM Market market
WHERE market.ID IS @ID
还有另一种方法可以做到这一点吗?
谢谢。
你需要做的
SELECT *
FROM Market market
WHERE market.ID = @ID OR (@ID IS NULL AND market.ID IS NULL)
只为此刻仍然可以完整做
SET ANSI_NULLS OFF
SELECT *
FROM Market market
WHERE market.ID = @ID
,但你不应该。此选项已弃用。 Quite an interesting related blog post
是否有您要坚持为空的变量,而不是仅仅做一个特殊的原因:
SELECT *
FROM Market market
WHERE market.ID IS NULL
如果你只是想确定是否market.ID为空,你可以这样做
SELECT *
FROM Market market
WHERE market.ID IS NULL
如果您正在测试,看看是否market.ID为空或和其它一些价值试试这个
SELECT *
FROM Market market
WHERE market.ID IS NULL
OR market.ID = @ID
谢谢,我试图类似于第一个答案,但没有@ID IS NULL,我得到了两个值(当有一个int值和它的空值)。 – triangulito