我有一個查詢的結果,我應該得到一個列的最後位數說「術語」使用Oracle SQL SUBSTR獲得最後的數字
The value of column term can be like:
'term' 'number' (output)
---------------------------
xyz012 12
xyz112 112
xyz1 1
xyz02 2
xyz002 2
xyz88 88
注:並非僅限於上述情況的,但要求是過去3名或更少的字符可以是數字
功能我用:to_number(substr(term.name,-3))
(起初我以爲的要求作爲最後3個字符總是數字,但我錯了)
我使用TO_NUMBER因爲如果最後3位是 '012',那麼數量應該是 '12' 但作爲一個可以在某些特定的情況下,像 'xyz88', 'XYZ1' 見)將給予
ORA-01722:無效數字
如何使用substr或regexp_substr來實現此目的?
沒有探索regexp_substr多。
Thx。 它的作品,但只是好奇regEx'\ d + $'做什麼。 首先接受了解決方案的人的回答。 – user1933888
Thx,你搖滾! Your's是最優雅的解決方案。 – user1933888
您應該接受此答案 –