我试图让下面的代码工作,两段代码(在 WHEN
部分和 ELSE
部分)分别工作,但是当在此使用时CASE
语句我收到错误
"Incorrect syntax near 'CAST', expected 'AS'." error.
基本上,如果 WHEN
语句代码等于或大于 24,则使用 THEN
语句,如果其低于 24,则使用 ELSE
声明。
在尝试了几个小时后,我似乎无法让它工作,任何关于我哪里出错的指示将不胜感激。
SELECT CASE
WHEN
(convert(float,datediff(mi, start_work, end_work))/60) >= '24'
THEN
(convert(float,datediff(mi, start_work, end_work))/60)
ELSE
(CAST(convert(varchar(2), dateadd(minute, datediff(minute, start_time, end_time), 0), 114)
* 60 + RIGHT (convert(varchar(5), dateadd(minute, datediff(minute, start_time, end_time), 0), 114),
CASE WHEN CHARINDEX(':',convert(varchar(5), dateadd(minute, datediff(minute, start_time, end_time), 0), 114)) > 0
THEN LEN(convert(varchar(5), dateadd(minute, datediff(minute, start_time, end_time), 0), 114))-3
ELSE LEN(convert(varchar(5), dateadd(minute, datediff(minute, start_time, end_time), 0), 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
语句
case when ... then ... else ... end
关于SQL,关键字 'FROM' 附近的 CASE 语句语法不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17991341/