我想插入表格的所有行到另一個表,我也希望有一個nvarchar
字段轉換爲bigint
,但是當我使用convert(bigint, col1)
的SQL Server顯示錯誤:轉換爲nvarchar在SQL Server BIGINT 2008
Error converting data type nvarchar to bigint
我該如何解決這個問題?
我想插入表格的所有行到另一個表,我也希望有一個nvarchar
字段轉換爲bigint
,但是當我使用convert(bigint, col1)
的SQL Server顯示錯誤:轉換爲nvarchar在SQL Server BIGINT 2008
Error converting data type nvarchar to bigint
我該如何解決這個問題?
你可以嘗試使用ISNUMERIC
,以確定那些確實數字行:
UPDATE dbo.YourTable
SET BigIntColumn = CAST(NVarcharColumn AS BIGINT)
WHERE ISNUMERIC(NVarcharColumn) = 1
這將轉換可轉換這些行 - 其他需要進行手工處理。
tnx ...這是我的回答... so tnx – 2011-04-29 06:38:01
這將會失敗,因爲存儲爲字符串的小數:SELECT CAST('。1'AS BIGINT) WHERE ISNUMERIC('。1')= 1 – 2016-01-05 15:51:38
只是爲了增加BD的評論,char(36)和chars 43-46,48-57,92,128,160,全部評估爲1爲數字。真正的kicker是在where或join語句中,您首先在邏輯上過濾掉所有非數字值,最後做一個convert語句,並且此錯誤仍然發生(忽略短路並評估整行)。 – 2016-08-18 20:54:13
「我該如何解決這個問題? 」 - 簡單。刪除無法轉換爲biginteger的數據 – 2011-04-29 06:09:55
如何自動刪除非數字數據...? – 2011-04-29 06:15:27
沒有魔杖,寫入TSQL將其刪除! – 2011-04-29 06:18:30