在運行以下查詢時,我遇到了以下錯誤:
轉換 varchar 值“0”時轉換失敗。為資料型別 int。
我知道它看到列值“0”。作為數字,但不能轉換為 INT 資料型別。我想問我將如何解決這個問題,因為我只想在列中顯示整數。
查詢如下:
SELECT
wh.Id,
CASE WHEN ISNUMERIC(wh.Uid AS INT) = 1
THEN CAST(UID AS INT)
ELSE 0
END AS [Cardholder ID]
FROM database.dbo.table wh
列內容的一些示例如下:
112
222225
55546
4478
0.)
0.
C/Windows/system.ini
Text here
uj5u.com熱心網友回復:
而不是isnumeric(),我傾向于使用try_convert().
話雖如此,try_convert(money,...)似乎更寬容一些。
例子
Declare @users Table ([UID] varchar(50)) Insert Into @users Values
('112')
,('222225')
,('55546')
,('4478')
,('0.)')
,('0.')
,('C/Windows/system.ini')
,('Text here')
,('4.')
Select *
,NewValue = try_convert(int,coalesce(try_convert(money,UID),0))
from @users
結果
UID NewValue
112 112
222225 222225
55546 55546
4478 4478
0.) 0
0. 0
C/Windows/system.ini 0
Text here 0
4. 4
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/447885.html
上一篇:回圈遍歷列以檢查SQLServer中的強制轉換是否成功
下一篇:根據資料型別將列拆分為行
