我有一個VARCHAR(255)類型的列的SQL Server 2000數據庫。所有的數據都是NULL,或者是數字數據,最多有兩個精度點(例如'11.85')。我試圖運行下面的T-SQL查詢,但收到的錯誤「錯誤轉換數據類型爲varchar到數字」問題將列值從VARCHAR(n)轉換爲DECIMAL
SELECT CAST([MyColumn] AS DECIMAL)
FROM [MyTable];
我想更具體的演員陣容,這也失敗了。
SELECT CAST([MyColumn] AS DECIMAL(6,2))
FROM [MyTable];
我也嘗試了以下看看是否有任何數據是非數字的,並且返回的唯一值是NULL。
SELECT ISNUMERIC([MyColumn]), [MyColumn]
FROM [MyTable]
WHERE ISNUMERIC([MyColumn]) = 0;
我試圖轉換爲其他數據類型,如FLOAT和MONEY,但只有MONEY是成功的。所以我嘗試了以下內容:
SELECT CAST(CAST([MyColumn] AS MONEY) AS DECIMAL)
FROM [MyTable];
...哪些工作得很好。任何想法爲什麼原始查詢失敗?如果我先轉換爲MONEY然後轉換爲DECIMAL,會不會有問題?
謝謝!
這是與導致問題的逗號而不是小數點幾個記錄。謝謝你的偉大答案! – 2010-04-07 00:18:40