嘗試使用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