2017年12月5日 星期二

☆SQLServer/Issue/SQL 將數據類型 varchar 轉換為 numeric 時出錯

[SQL Server][Issue][SQL] 


[案例說明][Explain]

SQL Server Version -> 2012

透過cast或convert將nvarchar或varchar轉換為數字型態時,因資料內容問題發生的錯誤:
訊息:將數據類型 nvarchar 轉換為 numeric 時出錯

Solution1
 使用ISNUMBERIC功能過濾錯誤的資料內容(官方說明)

EXAMPLE

select * from testtab
where ISNUMERIC(欄位) = 0




Solution2

若使用ISNUMERIC後仍然出現錯誤,可能是因為資料中有科學符號造成
先轉成float格式之後再轉numeric即可



select cast(  cast(欄位 as float) as numeric(10,6)  )  from testtab;

沒有留言:

張貼留言