加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

oracle – 字符串内的子串

发布时间:2021-04-04 03:46:19 所属栏目:站长百科 来源:网络整理
导读:假设这是我的表: ID STRING1 'ABC'2 'DAE'3 'BYYYYYY'4 'H' 我想在另一行的STRING变量中选择STRING列中至少有一个字符的所有行. 例如,1和2具有共同的A,1和3具有共同的B,但是4与任何其他行没有任何共同的字符.所以我的查询应该只返回前三行. 我不需要知道它

假设这是我的表:

ID  STRING
1   'ABC'
2   'DAE'
3   'BYYYYYY'
4   'H'

我想在另一行的STRING变量中选择STRING列中至少有一个字符的所有行.

例如,1和2具有共同的A,1和3具有共同的B,但是4与任何其他行没有任何共同的字符.所以我的查询应该只返回前三行.

我不需要知道它匹配的是哪一行.

谢谢!

解决方法

@ A.B.Cade:很好的解决方案,但可以在没有任何明显或加入的情况下完成.

SELECT * FROM test t1
WHERE EXISTS
(
  SELECT * FROM test t2
  WHERE t1.id<>t2.id AND
  regexp_like(t1.string,'['|| replace(t2.string,'.[]','.[]')||']')
)

查询不会将字符串与额外的行进行比较,因为只要找到当前行的1个匹配项,它就会停止比较…

See fiddle.

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!