表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;