oracle 根据逗号分割查询

Posted IT的鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 根据逗号分割查询相关的知识,希望对你有一定的参考价值。

SELECT
  v.字段2,
  v.字段1
FROM
  (
            SELECT
              字段2 AS 字段2,
              substr(
              REPLACE ( 字段1, ',', ',' ),
              l,
              instr( REPLACE ( 字段1, ',', ',' ) || ',', ',', l ) - l 
              ) AS 字段1
            FROM
              (
            SELECT
              v.字段2 AS 字段2,
              v.字段1  AS 字段1 
            FROM
              table v
            WHERE v.字段1  is not null
            HAVING
              count( 1 ) >= 1 
            GROUP BY
              v.字段2,
              v.字段1 
              ) A,
  
              (
            SELECT LEVEL
              l 
            FROM
              DUAL CONNECT BY LEVEL <= (
                                        SELECT
                                          max( ( length( 字段1 ) ) - LENGTH( REGEXP_REPLACE ( REPLACE ( 字段1, ',', '@' ), '[^@]+', '' ) ) ) 
                                        FROM
                                          table
                                          ) 
              ) 
        
            WHERE
              substr( ',' || REPLACE ( 字段1, ',', ',' ), l, 1 ) = ',' 
  ) v
  LEFT JOIN table a ON a.字段2= v.字段2

以上是关于oracle 根据逗号分割查询的主要内容,如果未能解决你的问题,请参考以下文章

oracle sql 实现查询时把一字符串按逗号分割,返回分割后的份数?

SQL拆分逗号分隔的字符串

SQL拆分逗号分隔的字符串

mysql字段存的有逗号隔开 取出来怎么分割了输出

oracle根据某个字段拆分成多条数据

mysql字段存的有逗号隔开 取出来怎么分割了输出