我需要一种方法来根据字符串中最后一个逗号的位置修剪PL / SQL中的字符串。但是,传入的字符串没有统一的格式,我找不到有效修剪字符串的方法。
HU-15-02 | HU, NYI, HAA East (should be trimmed to just HAA East)
MX-01-05 | MX, 01-05, OFFICES (OFFICES)
DK-94-02 | DK, ViewCom (VIEWCOM)
格式为国家/地区代码,后跟建筑物ID(如果适用),后跟建筑物名称(这就是我想要的)
答案 0 :(得分:0)
通过从字符串末尾开始倒数来获取最后一个逗号的位置,然后从逗号加空格前进中修剪
select substr(your_text,INSTR(your_text,',',-1) +2)
from your_table;
答案 1 :(得分:0)
REGEXP_SUBSTR()救援:
SQL> with tbl(str) as (
select 'HU, NYI, HAA East' from dual
union
select 'MX-01-05 | MX, 01-05, OFFICES' from dual
union
select 'DK-94-02 | DK, ViewCom' from dual
)
select regexp_substr(str, '^.*, (.*)$', 1, 1, null, 1) bldg_name
from tbl;
BLDG_NAME
-----------------------------
ViewCom
HAA East
OFFICES
SQL>