[dbo].[StoreProc1]
(
@Name varchar(10) = NULL,
@Age int
)
SELECT * FROM TABLE WHERE Name = @Name and Age = @Age
但是,由于@Name = NULL
不正确,存储过程不知道Name
的输入是否为空[{1}}或Name IS NULL
快速解决这个问题的方法是什么?
我想我可以做这样的事情,但是不是更方便吗?
Name = '<value>'
答案 0 :(得分:4)
[dbo].[StoreProc1]
(
@Name varchar(10) = NULL,
@Age int
)
SELECT * FROM TABLE WHERE (Name = @Name OR COALESCE(Name, @Name) IS NULL) and Age = @Age
答案 1 :(得分:1)
将Name = @Name
更改为:
( Name = @Name OR Name IS NULL AND @Name IS NULL )
答案 2 :(得分:1)
假设你想在name = @Name或者它们都为null时获得结果,那么我会使用以下内容。
[dbo].[StoreProc1]
(
@Name varchar(10) = NULL,
@Age int
)
SELECT *
FROM TABLE
WHERE (Name = @Name
OR ( Name IS NULL AND @Name IS NULL) )
AND Age = @Age
希望这有帮助。
答案 3 :(得分:0)
SELECT * FROM TABLE WHERE ISNULL(NAME,'')=ISNULL(@NAME,'') AND AGE=@AGE