尝试使用SQL Server 2008和跨越的一个问题运行给我下面的错误信息来构建一个简单的例子声明:SQL Case语句错误消息8114
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,仍然在学习绳索,所以你可以给任何帮助,非常感谢。
'NormalHoursPerWeek'的数据类型是什么? – Taryn 2013-05-03 18:46:40
您可以使用铸造。 – 2013-05-03 18:47:35
请通读本博客我写道:http://blogs.lessthandot.com/index.php/DataMgmt/DBProgramming/MSSQLServer/sql-server-case-when-data-type-problems – 2013-05-03 18:49:04