当前位置: 代码迷 >> Oracle管理 >> sql,任意数目参数显示任意行,求大神指点
  详细解决方案

sql,任意数目参数显示任意行,求大神指点

热度:95   发布时间:2016-04-24 04:18:07.0
求一个sql,任意数目参数显示任意行,求大神指点
表t_lib,假设就1个字段,3条数据

paperid  
------------
3021201
134827
107926

现在有任意数量paperid作为参数,例如:3021201,404112,134827,107926,5503223

我想最后输出的是这样的结果:

paperid             isexit
------------------------------
3021201             1 
404112               0
134827               1
107926               1
5503223             0

是否能用一条sql解决
------解决方案--------------------
SELECT res.d,CASE WHEN res.a IS NULL THEN 0
                  ELSE 1 END
  FROM (SELECT *
          FROM (SELECT regexp_substr('3021201,404112,134827,107926,5503223', '[^,]+', 1, level) D
                       FROM dual t
                    CONNECT BY LEVEL <= LENGTH('3021201,404112,134827,107926,5503223') - LENGTH(REPLACE('3021201,404112,134827,107926,5503223', ',', '')) + 1) tt
          LEFT JOIN (WITH paperid AS(
                       SELECT 3021201 A FROM dual
                       UNION
                       SELECT 134827 A FROM dual
                       UNION
                       SELECT 107926 A FROM dual
                    )
                    SELECT *
                      FROM paperid) p
            ON p.a = tt.d) res;
  相关解决方案