Sql server Sql错误:如果在Sql中使用Else,则为Case

Sql server Sql错误:如果在Sql中使用Else,则为Case,sql-server,syntax,syntax-error,Sql Server,Syntax,Syntax Error,有人能告诉我这里出了什么问题吗 我有多个语法错误 IF (('05:00' < CAST(t.Scan_In_Prod AS TIME)) AND (CAST(t.Scan_In_Prod AS TIME) < '08:00')) BEGIN (CASE WHEN (CAST(t.Scan_In_Prod as TIME) < CAST(t.Scan_Out_Prod AS TIME)) AND (CAST(t.Scan_Out_Prod as TIME) < '

有人能告诉我这里出了什么问题吗

我有多个语法错误

IF (('05:00' < CAST(t.Scan_In_Prod AS TIME)) AND (CAST(t.Scan_In_Prod AS TIME) < '08:00'))
BEGIN
    (CASE WHEN (CAST(t.Scan_In_Prod as TIME) < CAST(t.Scan_Out_Prod AS TIME)) AND (CAST(t.Scan_Out_Prod as TIME) < '19:00')
             THEN 'Early Out'
          WHEN ('07:00' < CAST(t.Scan_In_Prod AS TIME)) AND (CAST(t.Scan_In_Prod AS TIME) < CAST(t.Scan_In_Prod AS TIME))
             THEN 'Late In'
     END)
END
IF('05:00'
错误如下所示:

味精156,第15级,状态1,第25行
关键字“if”附近的语法不正确

味精156,第15级,状态1,第29行
关键字“case”附近的语法不正确

味精156,第15级,状态1,第42行
关键字“case”附近的语法不正确

味精102,第15级,状态1,第107行
“t”附近的语法不正确


尝试使用
SELECT
在内部
大小写
表达式前面加上前缀:

IF '05:00' < CAST(t.Scan_In_Prod AS TIME) AND
   '08:00' > CAST(t.Scan_In_Prod AS TIME)
BEGIN
    SELECT
        CASE WHEN CAST(t.Scan_In_Prod AS TIME) < CAST(t.Scan_Out_Prod AS TIME) AND
                  CAST(t.Scan_Out_Prod AS TIME) < '19:00'
             THEN 'Early Out'
             WHEN '07:00' < CAST(t.Scan_In_Prod AS TIME) AND
                  CAST(t.Scan_In_Prod as TIME) < CAST(t.Scan_In_Prod AS TIME)
             THEN 'Late In' END
END
如果“05:00”
没有这些,您应该使用select 我只换衣服

if (('05:00' < CAST(t.Scan_In_Prod as TIME)) and  (CAST(t.Scan_In_Prod as TIME) < '08:00'))
 begin   
 SELECT case when (CAST(t.Scan_In_Prod as TIME) < CAST(t.Scan_Out_Prod as TIME)) and (CAST(t.Scan_Out_Prod as TIME) < '19:00')
        then 'Early Out'
          when  ('07:00' < CAST(t.Scan_In_Prod as TIME)) and (CAST(t.Scan_In_Prod as TIME) < CAST(t.Scan_In_Prod as TIME))
        then 'Late In'
 end

end
if('05:00'
您有一个
案例
语句孤立地放在那里,没有查询。这就是问题所在。但是这个案例有这样的解释-->(CAST(t.Scan\u In\u Prod as TIME)