尝试使用 SQL Server 2008 构建一个简单的 case 语句并遇到问题,给我以下错误消息:
Msg 8114, Level 16, State 5, Line 6
Error converting data type varchar to numeric.
我已将导致问题的脚本隔离为以下内容:
CASE WHEN tPersonLocationHist.LocationCode = 'DC'
AND (tPersonJobHist.FullTimeEquivalent = 1)
AND (MONTH(tPersonStatusHist.LatestHireDate) < 10)
THEN tPersonStatusHist.NormalHoursPerWeek / 5
tPersonStatusHist.NormalHoursPerWeek 被格式化为十进制;但是,我无法计算。
有小费吗?结果计算需要采用十进制形式(到两位小数)。
即使我将 THEN 语句更改为“7.5”,它也会返回:
Msg 245, Level 16, State 1, Line 6
Conversion failed when converting the varchar value '7.5' to data type int.
我试过使用CONVERT(decimal(4,2),tPersonJobHist.NormalHoursPerWeek * 7.5)
,但也没有运气。
唯一可行的方法是将其作为:
CONVERT(int,tPersonJobHist.NormalHoursPerWeek * 7.5)
,但随后它会删除小数并仅给出整个整数。
正如您可能知道的那样,我是 SQL 新手,并且仍在学习绳索,因此非常感谢您提供的任何帮助。