PL SQL - 在语言上修剪字符串

时间:2015-10-29 14:15:08

标签: sql oracle

我需要一种方法来根据字符串中最后一个逗号的位置修剪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(如果适用),后跟建筑物名称(这就是我想要的)

2 个答案:

答案 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>