在select语句中调用case语句中的函数是可能的(我可以在case语句中使用while循环)

时间:2015-10-14 13:01:01

标签: sql sql-server select case sql-server-2014-express

我想根据案例选择数据,如下面的例子

    select Id, name, address,
    case when department = CIS then @date1 as Date
         else @date2 as Date

其中@date1@date2应该从函数中获取。我该怎么做? @ date1应该是while循环的输出。请帮我解决一个例子

2 个答案:

答案 0 :(得分:1)

您只能拥有一个列别名,它位于整个表达式之后。另请注意,您遗漏了end关键字:

SELECT id, 
       name,
       address,
       CASE WHEN department = 'CIS' THEN @date1 ELSE @date2 END AS [date]

编辑:
另请注意,对于简单的相等性检查,您可以使用更简单的语法:

SELECT id, 
       name,
       address,
       CASE department WHEN 'CIS' THEN @date1 ELSE @date2 END AS [date]

答案 1 :(得分:0)

您忘记了案例陈述的end

这应该有效:

select Id, name, address,
    case when 
         department = CIS then @date1 
         else @date2  
     end as "Date"