如何在T-SQL“case when”语句中编写代码块?

时间:2018-06-12 08:52:28

标签: sql-server

我有一个存储过程,我想传递一个参数。我想根据参数是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”语句中的代码块。参数的使用是示例的一部分,而不是问题的一部分

1 个答案:

答案 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)