我有一个存储过程,我想传递一个参数。我想根据参数是null还是包含值来调整我的Select语句。如何在“Then”或“Else”之后构造Select case以获得代码块而不是简单的赋值
Select Case isnull(@variable,'null')
when 'null' then select x from table
else select x from table where table.field = @variable
我尝试进入开始和结束但这似乎不起作用
注意:这不是关于在存储过程中使用参数的问题的重复 - 它是关于“case ... when”语句中的代码块。参数的使用是示例的一部分,而不是问题的一部分
答案 0 :(得分:1)
我相信你想要IF-ELSE
:
IF @variable IS NULL
select x from table;
ELSE
select x from table where table.field = @variable;
或
select x from table
where (table.field = @variable OR @variable IS NULL)