oracle 多字段匹配问题

demonapple 2017-11-02 05:25:57
比如有标签定义表a
value label
a1 你好
a3&a4 大家好

只有这两种情况,要么单独包含一个内容,要么同时包含两个字段,用&符号分开,value的内容互斥没有重合的。

然后有一张需要匹配的表b
remark
奥迪阿达湿答答阿达a1
奥迪阿达湿答答阿达a2
a4奥迪阿达湿答答阿达a3
...


需要查看b表的remark字段,去匹配a表里面的value,如果满足包含有关键字,就返回label标签

请问这个需求怎么实现?

...全文
298 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
chengccy 2017-11-03
SELECT *
FROM   B
LEFT   JOIN A
ON     REGEXP_COUNT(A.VALUE, '&') + 1 =
       REGEXP_COUNT(B.REMARK, REPLACE(A.VALUE, '&', '|'))
  • 打赏
  • 举报
回复
demonapple 2017-11-02
更正一下 表a 的value可以存在多个关键字。中间用&分开。不一定是两个。
  • 打赏
  • 举报
回复
碧水幽幽泉 2017-11-02
在外面喝咖啡~
  • 打赏
  • 举报
回复
碧水幽幽泉 2017-11-02
使用regxep_like可以实现。
  • 打赏
  • 举报
回复
发帖
Oracle

1.6w+

社区成员

Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
帖子事件
创建了帖子
2017-11-02 05:25
社区公告
暂无公告