我在表TABLE中有3个字段a,b,c(至少一个字段不为空)。对于记录,我必须以格式"来获取a,b,c。 a或b或c"如果a,b,c不为空且" a或b"如果c为null,只有c,如果a和b为null。请帮我查询
答案 0 :(得分:0)
SELECT nvl2(a, a||' or ', '')||nvl2(b, b||' or ', '')||nvl2(c, c, '')
FROM ( -- casos de uso
-- select NULL a, NULL b, NULL c from dual union all
select NULL a, NULL b, 'no-nulo-c' c from dual union all
select NULL a, 'no-nulo-b' b, NULL c from dual union all
select NULL a, 'no-nulo-b' b, 'no-nulo-c' c from dual union all
select 'no-nulo-a' a, NULL b, NULL c from dual union all
select 'no-nulo-a' a, NULL b, 'no-nulo-c' c from dual union all
select 'no-nulo-a' a, 'no-nulo-b' b, NULL c from dual union all
select 'no-nulo-a' a, 'no-nulo-b' b, 'no-nulo-c' c from dual
);
我对第一个案例发表评论,因为你说"至少有一个字段不为空"。