0

这是我的 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

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

例如,我有值 1 和 2 和 3

当我执行时,我得到了错误。

消息 156,级别 15,状态 1,第 3 行
关键字“if”附近的语法不正确。
消息 156,级别 15,状态 1,第 9 行
关键字“来自”附近的语法不正确。

4

3 回答 3

3

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

于 2012-05-07T14:31:08.827 回答
2

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

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

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

于 2012-05-07T14:36:26.880 回答
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 
于 2012-05-07T14:33:56.237 回答