我有一列,我想轉換爲十進制,所以我可以用它來比較我的where
條款。我想確保列中的所有值都大於或等於1.3。我成功地轉換列在select
聲明,但試圖做的where子句我得到以下錯誤在同一個轉換時:我可以使用case語句將varchar轉換爲decimal並在我的where子句中使用該語句嗎?
Arithmetic overflow error converting varchar to data type numeric.
我使用SQL Server 2008的
SELECT ID,
CASE
WHEN ISNUMERIC(USER_3) = 1
THEN Convert(varchar(50), CONVERT(decimal(14,2), USER_3))
END AS KG_M
FROM PART
WHERE USER_3 IS NOT NULL
AND CASE
WHEN ISNUMERIC(USER_3) = 1
THEN Convert(varchar(50), CONVERT(decimal(14,2), USER_3))
END >= 1.3
你應該使用'> ='1.3'',因爲你正在轉換爲'varchar' – Lamak
哦,哇這麼小的監督......謝謝。對於這個虛假的問題抱歉,我知道它應該一直工作。我甚至沒有想到語法錯誤。 – Azuraith
您可以顯示'USER_3'列中的數據嗎? 'ISNUMERIC'不可靠 –