sql - 想简化oracle sql中的REGEXP_SUBSTR()
问题描述
我有两个 REGEXP_SUBSTR 语句并希望进一步简化它们。
SELECT REGEXP_SUBSTR ('Node-323401:BellUser:Job-221429','[^ :]+',1,2)FROM DUAL;
SELECT REGEXP_SUBSTR ('WebWORKS3:BellUser','[^ :]+',1,2)FROM DUAL;
对于这两者,我得到了预期的输出:BellUser。这是令人满意的。
如果表达式更改为“BellUser:Job-221429”或“Node:323401:BellUser:Job-221429”或“Web:WORKS3:BellUser”或任何东西,我需要一种方法来简化正则表达式以获取 BellUSer别的。
解决方案
如果您只需要解决以下查询的空间问题,则查询将有助于案例陈述,但正如评论中所述,如果“BellUser”的位置不断更改,此查询将不起作用并且没有意义
select CASE WHEN REGEXP_COUNT('WebWORKS3:Bell User', ' ', 1, 'i')= 0 THEN REGEXP_SUBSTR ('WebWORKS3:Bell User','[^ :]+',1,2)
ELSE REGEXP_SUBSTR ('WebWORKS3:Bell User','[^ :]+',1,2) ||' '|| REGEXP_SUBSTR ('WebWORKS3:Bell User','[^ ]+',1,2) END from dual;
推荐阅读
- oracle - oracle apex中同一页面上的多个提交按钮?
- javascript - Javascript 一对一对象映射(内置函数?)
- google-apps-script - 其他用户(未登录 Google)无法在我的谷歌表格上运行我的谷歌应用脚本
- javascript - 通过护照获取facebook页面的访问令牌和页面访问令牌
- javascript - 如何在准备好的文件上单击 vimeo 播放器全屏?
- c - 如何以编程方式禁用不可屏蔽中断?
- java - 是否有通过公钥/私钥身份验证在多个客户端和 sftp 服务器之间建立连接?
- ruby-on-rails - 在哪里可以找到或创建 Spree API 的产品缩略图
- excel - 动态偏移选择数组
- python - Qt项目中调用Python脚本时如何避免Segmentation fault