在Oracle中,查找逗号分隔列内数据的执行时间过长

xienkqul  于 2023-02-15  发布在  Oracle
关注(0)|答案(1)|浏览(172)

我试图找出是否数据列表是在逗号分隔列。我有一个代码select * from my_table where (regexp_substr ( listcolumn, '[^,]+', 1, level ) in ('a','d')) connect by level <= regexp_count(listcolumn, ',') + 1;和表与大量的数据。问题是它的作品小数据表,但它是太多的时间来执行大量的表与大量的数据。我不是数据库Maven。所以你能请帮助如何解决这个问题。谢谢你提前。

pgky5nke

pgky5nke1#

不要拆分字符串,查找子字符串匹配项(使用周围的分隔符,以便匹配整个术语):

SELECT *
FROM   my_table
WHERE  ',' || listcolumn || ',' LIKE '%,' || 'a' || ',%'
OR     ',' || listcolumn || ',' LIKE '%,' || 'd' || ',%';

相关问题