【发布时间】:2012-10-29 05:36:16
【问题描述】:
我想将 oracle 表中的逗号分隔列与不同表中的另一个逗号分隔列进行比较。如果第一列中的所有值(在逗号分隔的列中且无论其顺序如何)都包含在第二列中,则不应返回该行。
例如——
-
第 1 列有 a,b,c,def 第 2 列有 a,c,b
这不应返回,因为第 2 列中的 a、c 和 b 已包含在内 在第 1 列中,无论其顺序如何。
-
第 1 列有 a,cl,owd 第 2 列有 a,owd,pp
应该返回此行,因为第 2 列有 'pp' 不是 包含在第 1 列中。
-
第 1 列有 vvv,ccc,rr 第 2 列有 ccc,rr
不应返回此行。
我可以在 SQL 中完成此操作吗?不期望过程或函数。
感谢大家的帮助!!
【问题讨论】:
-
这些规则很混乱,文本中的描述与示例不匹配。
-
您首先不应该将逗号分隔的值存储在单个列中。如果你重新设计你的数据模型(即解决根本原因)而不是与错误设计的症状作斗争会更好。