2011-08-17 12 views

回答

12

你需要做的

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

+0

谢谢,我试图类似于第一个答案,但没有@ID IS NULL,我得到了两个值(当有一个int值和它的空值)。 – triangulito

2

是否有您要坚持为空的变量,而不是仅仅做一个特殊的原因:

SELECT * 
FROM Market market 
WHERE market.ID IS NULL 
0

如果你只是想确定是否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