这是一段联表查询sql,由uf_sfkjh表的glgx字段和uf_htss的glzd对应,其中uf_htss与uf_sfkjh是一对多的关系,现在出现when中得到(0,17),结果执行的时候提示字符串转换出错,求教大佬如何修改
select
case
when (select listagg(distinct sfkzq,',') within group (order by sfkzq) as sfkzqs from uf_sfkjh where glgx=ss.glzd group by glgx) =14 then 1
when (select listagg(distinct sfkzq,',') within group (order by sfkzq) as sfkzqs from uf_sfkjh where glgx=ss.glzd group by glgx) =15 then 2
when (select listagg(distinct sfkzq,',') within group (order by sfkzq) as sfkzqs from uf_sfkjh where glgx=ss.glzd group by glgx) =17 then 3
when (select listagg(distinct sfkzq,',') within group (order by sfkzq) as sfkzqs from uf_sfkjh where glgx=ss.glzd group by glgx) in (0,1,2,19) then 4
when (select listagg(distinct sfkzq,',') within group (order by sfkzq) as sfkzqs from uf_sfkjh where glgx=ss.glzd group by glgx) in (3,4,5,6,7,8,9,10,11,12,13,16,18) then 5
else 5
end payMethod
from uf_htss ss where id=10
select
case
when (select listagg(distinct sfkzq,',') within group (order by sfkzq) as sfkzqs from uf_sfkjh where glgx=ss.glzd group by glgx) =14 then 1
when (select listagg(distinct sfkzq,',') within group (order by sfkzq) as sfkzqs from uf_sfkjh where glgx=ss.glzd group by glgx) =15 then 2
when (select listagg(distinct sfkzq,',') within group (order by sfkzq) as sfkzqs from uf_sfkjh where glgx=ss.glzd group by glgx) =17 then 3
when (select listagg(distinct sfkzq,',') within group (order by sfkzq) as sfkzqs from uf_sfkjh where glgx=ss.glzd group by glgx) in (0,1,2,19) then 4
when (select listagg(distinct sfkzq,',') within group (order by sfkzq) as sfkzqs from uf_sfkjh where glgx=ss.glzd group by glgx) in (3,4,5,6,7,8,9,10,11,12,13,16,18) then 5
else 5
end payMethod
from uf_htss ss where id=10