sql - 逗号分隔的字符串匹配
问题描述
我有这个查询:
SELECT regexp_replace (var_called_num, '^' ||ROUTING_PREFIX) INTO Num
FROM INCOMING_ROUTING_PREFIX
WHERE var_called_num LIKE ROUTING_PREFIX ||'%';`
INCOMING_ROUTING_PREFIX 表有两行
1) 007743
2) 007742
var_called_num
是0077438843212123
。所以上面的查询给出了结果8843212123
。所以基本上,查询是从var_called_num
.
现在我的桌子变了。现在它只有 1 行以逗号分隔。
修改表:INCOMING_ROUTING_PREFIX 表有一行,以逗号分隔:
1) 007743,007742
如何修改查询以实现相同的行为。需要从 中删除最长匹配前缀var_called_num
。
解决方案
您可以拆分值
with test as (
select regexp_substr('007743,007742','[^,]+', 1, level) as ROUTING_PREFIX from dual
connect by regexp_substr('007743,007742S', '[^,]+', 1, level) is not null
)
并使用您选择的视图
SELECT regexp_replace ('0077438843212123', '^' ||ROUTING_PREFIX)
FROM test WHERE '0077438843212123' LIKE ROUTING_PREFIX ||'%';
推荐阅读
- r - 如何计算犯罪密度?
- python - Python len() 不起作用,但 __len__ 对持有 numpy 数组的类起作用
- sql-server - SQL Server 中的日期时间转换错误
- php - Laravel 打破并结合 Eloquent 查询
- css - 空间不好的Webfont以及如何修复它
- git - 在 Git 中标记文件
- debugging - 我可以在 Bazel 测试中使用 Python 调试器吗
- angular - “检查后表达式已更改” Angular 弹出错误
- php - PHP函数变量在我也使用全局但仍然失败的另一个PHP函数中不起作用
- javascript - 如何仅显示点击提要的评论