【发布时间】:2014-05-28 19:41:49
【问题描述】:
我想创建一个在 where 子句中使用输入参数的存储过程。该参数将是文本或空值。
即假设我有一张桌子 [tbl]
Status val
NULL 158
Acc 155
Acc 152
Null 24
Rej 34
在 SQL Server 中,可以使用
找到空值WHERE Status is NULL
我还希望存储过程能够处理参数等于特定值的情况。
WHERE Status = @parameter
如何结合这两种情况?我想要这样的东西。
CREATE PROC test @parameter VARCHAR(10) = ''
SELECT *
FROM [tbl]
IF (@parameter is NULL OR @parameter = '') THEN WHERE STATUS is Null
ELSE WHERE STATUS = @parameter
【问题讨论】:
-
从您的问题看来,您似乎只希望在
@parameter为 NULL 或 '' 时获取 NULL 行,但您接受的答案 总是 返回 NULL 行。 -
你是对的。我刚刚意识到,我会感谢您正确回答问题
标签: sql sql-server stored-procedures