ORACLE SQL CSV列比较

Srini2k6

我有一个表,其中包含CSV值作为列。我想在where子句中使用该列来比较是否存在CSV子集。例如,表的值如下

1| 'A,B,C,D,E'

询问:

从其中csv_column包含'A,C'的标签中选择ID

该查询应返回1。

如何在SQL中实现呢?

蒂姆·比格莱森(Tim Biegeleisen)

您可以使用来处理此问题LIKE,请确保为要匹配的每个字母/子字符串搜索三种类型的模式:

SELECT id
FROM yourTable
WHERE (csv_column LIKE 'A,%' OR csv_column LIKE '%,A,%' OR csv_column LIKE '%,A')
      AND
      (csv_column LIKE 'C,%' OR csv_column LIKE '%,C,%' OR csv_column LIKE '%,C')

注意,匹配的子串A的装置,要么A,,A,,A出现在CSV列。

我们还可以使用INSTR()代替编写结构类似的查询LIKE,甚至可以比使用通配符提高性能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章