我有一个用于返回所有客户数据的SQL,但是,所有数据都在一个字段中。我使用的SQL是:
SELECT Cust_Desc
FROM All_Cust_DataCust_Desc以以下格式返回以下信息
John, Doe, Client ID 7, Region Code, 4....我需要拆分, Region Code中剩下的所有数据,以便查询只返回John, Doe, Client ID 7。
发布于 2019-01-17 04:58:11
使用regexp_replace
with All_Cust_Data(Cust_Desc) as
(
select 'John, Doe, Client ID 7, Region Code, 4....' from dual
)
select regexp_replace(Cust_Desc,'(.*),.\Region Code.*','\1') as "Result String"
from All_Cust_Data;
Result String
-----------------------
John, Doe, Client ID 7发布于 2019-01-17 05:01:43
尝试组合substr和instr函数
select Cust_Desc, substr(Cust_Desc,0,INSTR(Cust_Desc,'Region Code')-1) from All_Cust_Data;发布于 2019-01-17 05:06:29
例如:
SQL> with all_cust_data (cust_Desc) as
2 (select 'John, Doe, Client ID 7, Region Code, 4....' from dual)
3 select rtrim(trim(substr(cust_Desc, 1, instr(cust_desc, 'Region Code') - 1)), ',') result
4 from all_cust_data;
RESULT
----------------------
John, Doe, Client ID 7
SQL>它使用旧的SUBSTR + INSTR组合;TRIM函数在这里删除尾随空格和逗号(数字7,后面的那个)
https://stackoverflow.com/questions/54225240
复制相似问题