oracle,怎么写sql可以提取到特定内容?实例如下,左图content中是一串文本,从该段文本中提取“测试、其他、存在”到右侧单独列。
oracle,怎么写sql可以提取到特定内容
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
8条回答 默认 最新
- 语言-逆行者 2023-04-24 16:16关注
基于new bing的回答:
SELECT REGEXP_SUBSTR(content, '测试|其他|存在', 1, 1, 'i') AS keyword1, REGEXP_SUBSTR(content, '测试|其他|存在', 1, 2, 'i') AS keyword2, REGEXP_SUBSTR(content, '测试|其他|存在', 1, 3, 'i') AS keyword3 FROM test_table;
在上面的 SQL 语句中,我们通过使用 REGEXP_SUBSTR 函数从 content 列中提取符合正则表达式 '测试|其他|存在' 的子字符串,并在第四个参数中指定不区分大小写('i')。在 SELECT 子句中,我们给每一个提取出来的子字符串起了一个别名(keyword1, keyword2, keyword3),方便后续使用。
注意:如果有些行中没有这三个关键字,则对应的列会显示 NULL。
-- 插入 INSERT INTO test_table (result) SELECT REGEXP_SUBSTR(content, '测试|其他|存在', 1, 1, 'i') || ', ' || REGEXP_SUBSTR(content, '测试|其他|存在', 1, 2, 'i') || ', ' || REGEXP_SUBSTR(content, '测试|其他|存在', 1, 3, 'i') FROM test_table; -- 更新 UPDATE test_table SET result = REGEXP_SUBSTR(content, '测试|其他|存在', 1, 1, 'i') || ', ' || REGEXP_SUBSTR(content, '测试|其他|存在', 1, 2, 'i') || ', ' || REGEXP_SUBSTR(content, '测试|其他|存在', 1, 3, 'i');
在上述的 SQL 语句中,我们通过使用 || 操作符来连接多个字符串,生成最终的 result 列的值。其中 INSERT INTO 语句会将 result 列插入到 test_table 表中,而 UPDATE 语句会更新表中原有的 result 列。需要注意的是,在执行 UPDATE 语句时,原有的 result 列中的数据会被覆盖。
希望我的回答能够解决你的问题!
解决 无用评论 打赏 举报
悬赏问题
- ¥15 查询优化:A表100000行,B表2000 行,内存页大小只有20页,运行时3页,设计两个表等值连接的最简单的算法
- ¥15 led数码显示控制(标签-流程图)
- ¥20 为什么在复位后出现错误帧
- ¥15 结果有了,想问一下这个具体怎么输入
- ¥15 怎么修改鸿蒙app的UI及功能设计
- ¥15 帮我利用jupyter 运行一个正确的代码
- ¥15 如何使用Gephi软件和Python包中的GephiStreamer交互
- ¥15 sqlite加密问题咨询
- ¥15 appdesigner接收不到udp组播的数据
- ¥15 verilog 非阻塞赋值下的移位拼接错误