2014-09-04 17 views
2

是否有在T-SQL任何方式從varchar得到像12,3數字參數12.3不使用轉換逗號分隔VARCHAR到數字不更換

select cast(replace('12,3',',','.') as numeric(12,2)) 
    select cast(cast('12,3' as money) as numeric(12,2))/10 

喜歡的東西

ALTER SESSION SET NLS_NUMERIC_CHARACTERS =',' 
在甲骨文的PL

/SQL。

+0

那麼,通常的答案是「不要將數字存儲爲字符串」。你爲什麼這樣做? – Luaan 2014-09-04 16:12:55

+0

我需要解析包含許多數字參數的json。 – adelak 2014-09-04 17:57:35

+1

你正在解析T-SQL中的JSON?我認爲你選擇了錯誤的技術來完成這項任務:)你應該在服務器代碼中處理它,或者如果你確實需要將文檔存儲在MS SQL中,那麼應該使用XML而不是JSON - XML是MS SQL中的本地代碼,不像JSON。 – Luaan 2014-09-05 07:03:59

回答

3

從SQL Server 2012中,您可以使用PARSE,其文化使用逗號作爲小數點分隔符。

select parse('12,3' as numeric(12,2) using 'sv-SE')