2
SELECT CASE Price WHEN '' THEN 0.0 ELSE Price END FROM Table
如果價格空,則返回0.0,但如果列具有價值它給了我下面將varchar轉換爲數據類型數值的算術溢出錯誤?
算術溢出錯誤轉換VARCHAR數據類型的數字錯誤。
如何更改我的代碼來處理這種情況?
SELECT CASE Price WHEN '' THEN 0.0 ELSE Price END FROM Table
如果價格空,則返回0.0,但如果列具有價值它給了我下面將varchar轉換爲數據類型數值的算術溢出錯誤?
算術溢出錯誤轉換VARCHAR數據類型的數字錯誤。
如何更改我的代碼來處理這種情況?
SELECT CASE Price WHEN '' THEN 0.0 ELSE CAST(Price AS DECIMAL(...)) END FROM Table
隱式轉換通常會採用最小的可能類型,所以當您遇到較大的值時將會失敗。在CASE/ELSE中將您的值明確地轉換/轉換爲正確的類型。
它的工作原理,其中一些列的值爲30.100000000000001,並且失敗。有沒有解決辦法? – CodeHunter
什麼數據類型是價格列? – Joe
價格欄是十進制的 – CodeHunter
那麼它怎麼能等於一個空字符串呢?我不明白你的CASE聲明。 – Joe