看板 Database 關於我們 聯絡資訊
資料庫名稱: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
anchime: to_number(‘1’||‘substr(atable,121,7)’) - 1000000 01/13 19:14
anchime: 更正 '1' || .... 01/13 19:16
好方法,用前面加1的方式在用運算式轉為數值 實做後也不需to_number函式 1 || substr(atable,121,7)-10000000查詢結果便是數字型態 謝謝anchime的不吝提示 ※ 編輯: erho (122.117.124.224), 01/14/2015 09:26:19
pooznn: 用LTRIM('000123', '0') 不行嗎? 01/14 11:25
若用pooznn的方法, 雖然一樣為123, 但查詢結果型態依然為文字, 但如果以anchime的作法可同時轉為數字形態, 可搭配數字運算如sum,avg等函數在做進一步運算 ※ 編輯: erho (122.117.124.224), 01/15/2015 11:54:20
benqm300: 為什麼to_number(),裡面要用'',來包住substr的語法? 03/21 15:28