3
我有一個現有的表,其中包含類型爲NVARCHAR
的'price_info'列。我想添加MONEY
類型的新列「價格」,並在可能的情況下將'price_info'列的內容轉換/複製到該列中。如何將NVARCHAR安全地轉換爲MONEY
如果'price_info'僅包含數字數據,則可以輕鬆地轉換該值。但當然'price_info'也可以包含無法轉換爲MONEY
類型的數據,在這種情況下會發生錯誤。
有沒有辦法只複製到MONEY
的轉換成功的值,並且靜靜地忽略所有其他行(或者在這些情況下將'price'列設置爲0)?
E.g.我想要的是這樣的(僞代碼):
update products set price = some_conversion_function(money, price_info, 0)
(其中0是在轉換失敗時使用的默認值)。
'try_convert'只有2012。這個問題被標記爲2008 – 2012-08-16 15:31:37
我直接從他的問題中複製了代碼,我添加的所有代碼都是WHERE子句,實際上我甚至都不知道try_convert,我認爲這是他們編寫的自定義函數。時間來閱讀:) – StevenMcD 2012-08-16 15:33:18
謝謝,這是有效的。我不知道有'try_convert'函數(因爲我使用的是SQL 2008),但它仍然可以與普通的'convert'函數一起使用。 – M4N 2012-08-16 15:33:47