Select
case
when itembar > 1.0
then 'yes'
else 'no'
end
from
table
錯誤:
Itembar : varchar Error; could not convert varchar to numeric
我試着投功能,但它不工作..請建議
Select
case
when itembar > 1.0
then 'yes'
else 'no'
end
from
table
錯誤:
Itembar : varchar Error; could not convert varchar to numeric
我試着投功能,但它不工作..請建議
在SQL Server 2012+,你可以使用TRY_CAST,TRY_CONVERT,TRY_PARSE來避免轉換數據時出錯。如果有任何錯誤,這些函數返回NULL
。
例如可以可以做
Select case when TRY_CAST(itembar as decimal(10,2)) > 1.0 then 'yes' else 'no' end
from table
Select case when TRY_CONVERT(decimal(10,2), itembar) > 1.0 then 'yes' else 'no' end
from table
但作爲@Gurwinder建議,如果你的數據是所有的數字,然後改變它的類型,任何數值類型:小數,INT,....
嘗試通過使用CAST 查詢執行您的問題聲明:
DECLARE @itembar varchar(100) = '2567.43'
Select
case
when cast(@itembar as decimal(18,4))>1.0
then 'yes'
else 'no'
end
如果系統因轉換數據類型出現問題而引發錯誤,則使轉換*明確*不會解決問題。它仍然會有完全相同的問題。 –
如果列itembar包含數字DAT a,它爲什麼是varchar類型的? – GurV