SQL,关键字“FROM”附近的CASE语句的语法不正确

前端之家收集整理的这篇文章主要介绍了SQL,关键字“FROM”附近的CASE语句的语法不正确前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图让下面的代码工作,单独的两个代码(在WHEN部分和ELSE部分)工作,但是当在这个CASE语句中使用时,我得到一个错误

“Incorrect Syntax near ‘CAST’,expected ‘AS’.” error.

基本上如果WHEN语句代码等于或大于24,那么如果THEN语句的值低于24,则使用THEN语句,然后使用ELSE语句.

在尝试几个小时之后,我似乎无法让这个工作有任何迹象表明我将出现错误的地方将不胜感激.

SELECT CASE 
        WHEN 
            (convert(float,datediff(mi,start_work,end_work))/60) >= '24'
        THEN
            (convert(float,end_work))/60)
        ELSE
            (CAST(convert(varchar(2),dateadd(minute,datediff(minute,start_time,end_time),0),114) 
            * 60 + RIGHT (convert(varchar(5),114),CASE WHEN CHARINDEX(':',convert(varchar(5),114)) > 0
            THEN LEN(convert(varchar(5),114))-3
            ELSE LEN(convert(varchar(5),114))
            END) AS decimal) / 60
FROM  NDB.dbo.statusa 
INNER JOIN NDB.dbo.details ON statusa.vkey = details.vkey
INNER JOIN NDB.dbo.chegu ON statusa.ckey = NDB.dbo.chegu.gkey
WHERE start_time!= end_time AND string1 = Visit_Id and NDB.dbo.chegu.name = 'loft'
     AS [Working]

解决方法

您需要关闭案例陈述
case when ... then ... else ... end

猜你在找的MsSQL相关文章