callback undefined
结果:
263904755925760 Anaheim-Santa Ana-Irvine CA
那么如何使用多个选择将一行中的每个城市分开 喜欢:Anaheim CA. Santa Ana CA. Irvine CA
答案 0 :(得分:1)
根据您的示例数据和所需的输出,实际上您想要在-
之类的字符串中Anaheim-Santa Ana-Irvine
之间提取值,然后使用CA
之类的值连接它们,以便结果正如你所提到的应该是:
Anaheim CA
Santa Ana CA
Irvine CA
对这些场景使用regx_substr
是非常有用的,你可以通过将提取的值与生成的id列表(表)交叉连接来实现结果,其中复数字符串中的值的数量为:
SQL> create table strTable(complexStr varchar(100),strId varchar(5));
Table created.
SQL> insert into strTable values('Anaheim-Santa Ana-Irvine','CA');
1 row created.
SQL> commit;
Commit complete.
SQL> select trim(regexp_substr(t.complexStr, '[^-]+', 1, ids.column_value)) city,
2 t.strId state
3 from strTable t
4 cross join
5 table (cast (multiset
6 (select level from dual connect by level <= regexp_count(t.complexStr, '-')+1)
7 AS sys.odciNumberList)) ids;
CITY STATE
--------------------
Anaheim CA
Santa Ana CA
Irvine CA
SQL> drop table strTable;
Table dropped.
SQL>