首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Oracle SQL中收集文本字符串的剩余数据

如何在Oracle SQL中收集文本字符串的剩余数据
EN

Stack Overflow用户
提问于 2019-01-17 04:55:22
回答 3查看 77关注 0票数 1

我有一个用于返回所有客户数据的SQL,但是,所有数据都在一个字段中。我使用的SQL是:

代码语言:javascript
运行
复制
SELECT Cust_Desc
FROM All_Cust_Data

Cust_Desc以以下格式返回以下信息

代码语言:javascript
运行
复制
John, Doe, Client ID 7, Region Code, 4....

我需要拆分, Region Code中剩下的所有数据,以便查询只返回John, Doe, Client ID 7

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-01-17 04:58:11

使用regexp_replace

代码语言:javascript
运行
复制
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

Rextester Demo

票数 0
EN

Stack Overflow用户

发布于 2019-01-17 05:01:43

尝试组合substr和instr函数

代码语言:javascript
运行
复制
select Cust_Desc, substr(Cust_Desc,0,INSTR(Cust_Desc,'Region Code')-1) from All_Cust_Data;
票数 0
EN

Stack Overflow用户

发布于 2019-01-17 05:06:29

例如:

代码语言:javascript
运行
复制
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,后面的那个)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54225240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档