SQL查询中的IF条件

时间:2012-05-07 14:29:13

标签: sql-server-2008

这是我的SQL查询

Declare @Type varchar

select  
  if
    (tn.notification_type=1)
  begin
    set @Type= 'WORK FLOW'
    print  'status  '+ CAST(@type AS nvarchar(58))  
  end
from tbl_Notification tn

这里我遇到问题,包括基于表列值的条件

E.g。我有值1和2和3

当我执行时,我收到错误。

  

Msg 156,Level 15,State 1,Line 3
  关键字“if”附近的语法不正确。
  Msg 156,Level 15,State 1,Line 9
  关键字'from'附近的语法不正确。

3 个答案:

答案 0 :(得分:3)

将if语句替换为case语句。你不能在这样的查询中使用if。

答案 1 :(得分:2)

详细说明Namphibian的回答,这是准确的:

SELECT
      @Type = (CASE tn.Notification_Type 
                   WHEN 1 THEN 'WORK FLOW' 
                   ELSE 'SOMETHING ELSE' 
                END)
FROM tbl_Notification tn

您也无法在SQL查询中执行此类打印,之后您必须在某种循环情况下执行此操作。

答案 2 :(得分:0)

Declare @Type varchar 

if((select tn.notification_type from tbl_Notification tn) = 1) 
begin
   set @Type= 'WORK FLOW' 
   print 'status '+ CAST(@type AS nvarchar(58))
end