2014-04-04 80 views
-1

我有第1列是varchar和第2列是浮動。 我想複製第1列到第2列的內容,看起來像第1列有一個數字的所有實例。如何將varchar轉換爲SQL服務器中的浮點數?

這裏是我的代碼:

UPDATE [TestDB].[dbo].data 
SET [COLUMN 2]=CAST([Column 1] AS FLOAT) 
WHERE ISNUMERIC ([COLUMN 1]) = 1 

我使用SQL Server 2008 R2。這個代碼應該工作嗎?

+0

的價值是什麼是失敗? –

+0

TomTom,我不同意。我正在尋找可能的情況......我添加了ISNUMERIC .. – phan

+0

@phan它不一定有效。試試這個:'SELECT ISNUMERIC(' - ')',現在嘗試'SELECT CAST(' - 'AS FLOAT)' – Lamak

回答

1
UPDATE [TestDB].[dbo].data 
SET [COLUMN 2]=Case When IsNumeric([Column 1]) = 1 Then CAST([Column 1] AS FLOAT) End 
+0

G馬斯特羅斯,謝謝我剛剛添加了ISNUMERIC系列,你擊敗了我。 – phan

0

嘗試這樣做它像這樣

case when isnumeric([Column 1])=1 
     then cast([Column 1] AS FLOAT) 
     else 0 
end 

ISNUMERIC(表達)確定一個表達式是否爲有效 數值類型。

看到這裏ISNUMERIC

相關問題