[SQL ] 請問使用to_number字串轉數字的錯誤

看板Database作者 (ptt訪客)時間11年前 (2015/01/13 18:41), 11年前編輯推噓2(202)
留言4則, 3人參與, 最新討論串1/2 (看更多)
資料庫名稱:oracle 資料庫版本:9i 內容/問題描述: table A有一個column為 atable varchar(190) 輸入 select substr(atable,121,7) from table A; 的結果為 0001236 0000782 0000107 0000227 0001489 我使用想讓輸出的結果為 1236 782 107 227 1489 使用TO_NUMBER函式都回應ORA-01722: invalid number select to_number('substr(atable,121,7)') from table A 請教各位大大這個語法的問題在那裡,望賜教 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.124.224 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1421145666.A.C48.html

01/13 19:14, , 1F
to_number(‘1’||‘substr(atable,121,7)’) - 1000000
01/13 19:14, 1F

01/13 19:16, , 2F
更正 '1' || ....
01/13 19:16, 2F
好方法,用前面加1的方式在用運算式轉為數值 實做後也不需to_number函式 1 || substr(atable,121,7)-10000000查詢結果便是數字型態 謝謝anchime的不吝提示 ※ 編輯: erho (122.117.124.224), 01/14/2015 09:26:19

01/14 11:25, , 3F
用LTRIM('000123', '0') 不行嗎?
01/14 11:25, 3F
若用pooznn的方法, 雖然一樣為123, 但查詢結果型態依然為文字, 但如果以anchime的作法可同時轉為數字形態, 可搭配數字運算如sum,avg等函數在做進一步運算 ※ 編輯: erho (122.117.124.224), 01/15/2015 11:54:20

03/21 15:28, , 4F
為什麼to_number(),裡面要用'',來包住substr的語法?
03/21 15:28, 4F
文章代碼(AID): #1KjFP2n8 (Database)
文章代碼(AID): #1KjFP2n8 (Database)