我需要在字符之前將所有字符都替換為空,并且.還需要將所有字符都替換為空。請看下面的例子:[]
| 從 | 到 |
|---|---|
[PINWHEEL_ASSET].[MX5530] |
MX5530 |
[PINWHEEL_TRADE].[AR5403] |
AR5403 |
點之前和之后的部分.是變數。
uj5u.com熱心網友回復:
with
sample_data (my_string) as (
select '[PINWHEEL_ASSET].[MX5530]' from dual
)
select rtrim(substr(my_string, instr(my_string, '.') 2), ']') as second_part
from sample_data
;
SECOND_PART
-----------
MX5530
這假設輸入字串看起來完全像這樣:[first].[second],其中“first”和“second”是(可能為空)不包含句點或右括號的字串。
uj5u.com熱心網友回復:
另一種選擇是使用正則運算式(參見第 6 行)。
樣本資料:
SQL> with test (col) as
2 (select '[PINWHEEL_ASSET].[MX5530]' from dual union all
3 select '[PINWHEEL_TRADE].[AR5403]' from dual
4 )
查詢從這里開始:
5 select col,
6 regexp_substr(col, '\w ', 1, 2) result
7 from test;
COL RESULT
------------------------- --------------------
[PINWHEEL_ASSET].[MX5530] MX5530
[PINWHEEL_TRADE].[AR5403] AR5403
SQL>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/455855.html
下一篇:如何在with塊中定義型別?
