首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL (oracle)用于比较两个列表

SQL (oracle)用于比较两个列表
EN

Stack Overflow用户
提问于 2012-09-05 02:05:24
回答 2查看 4.6K关注 0票数 1

我有一个表,其中的一列包含一个列表(是的,我知道这违反了规范化)。我试图找到一些“重叠”函数的痛处,即

代码语言:javascript
运行
复制
SELECT * FROM TABLE WHERE 'a,b,c' OVERLAP TABLE.LISTCOLUMN 

因此,LISTCOLUMN包含a、b或c中的任意一个或全部

EN

Stack Overflow用户

回答已采纳

发布于 2012-09-05 02:36:21

有两个选项:

如果您使用的是Oracle10g或更高版本,请使用regexp_like

代码语言:javascript
运行
复制
select *
  from my_table
 where regexp_like(listcolumn, '[abc]')

这与列中包含abc的表中的所有内容相匹配。

或者,你可以做更可怕、更难维护的事情:

代码语言:javascript
运行
复制
select *
  from my_table
 where listcolumn like '%a%'
    or listcolumn like '%b%'
    or listcolumn like '%c%'

下面是一个演示的小SQL Fiddle

然而,正如你已经知道的,从长远来看,适当地规范化你的数据库将会省去你很多的痛苦。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12269027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档