我有一個表上的列有點問題。 該列是一個名爲「獎」的Varchar。 的的數據都是一樣的東西:ORACLE - 字符串到數字
00008599
00004565
00001600
etc...
他們必須成爲:
85.99
45.65
16.00
etc...
我試圖與TO_NUMBER功能,但它不工作。 喜歡的東西:
SELECT to_number(prize, '999999.99') FROM TABLE
的錯誤是:ORA-01722
我有一個表上的列有點問題。 該列是一個名爲「獎」的Varchar。 的的數據都是一樣的東西:ORACLE - 字符串到數字
00008599
00004565
00001600
etc...
他們必須成爲:
85.99
45.65
16.00
etc...
我試圖與TO_NUMBER功能,但它不工作。 喜歡的東西:
SELECT to_number(prize, '999999.99') FROM TABLE
的錯誤是:ORA-01722
你可以使用LTRIM由100擺脫前導零和除法:
SELECT to_number(ltrim(prize, '0'))/100 FROM table
謝謝。我正在使用這個涉及字符串函數的指令,但是您的更好的是,將您的代碼作爲realPrize(SUBSTR(獎,0.5)||'。'|| SUBSTR(獎,6,2)) – MrMime
請注意,你自己有以處理字符串是100倍的事實。最簡單的方法應該是這樣的:
SELECT to_number(prize)/100 FROM TABLE
你在列中的值是不是純數字?你可以用'not regexp_like(prize,'^ [0-9] + $')來檢查' –
如果你可以(找到不符合的數據後),你應該更新你的數據模型,作爲數字存儲,甚至優選數量(n,2)爲n的某個合適的值。 –