从条件聚合结果中删除NULLS

时间:2016-03-15 12:43:18

标签: sql pivot isnull

我很难删除NULLS。 ISNULL语句似乎适用于动态结果,但不适用于第二个。

我的最终提取查询是:

select itemid,title,description,cat,fibre,washing,colours,promo,
   max(case when seqnum = 1 then isnull(chm_sizegrouping,'') end) as sizes_1,
   max(case when seqnum = 2 then isnull(chm_sizegrouping,'') end) as sizes_2,
   max(case when seqnum = 3 then chm_sizegrouping end) as sizes_3,
   max(case when seqnum = 4 then chm_sizegrouping end) as sizes_4)

显示的结果是:

itemid  sizes_1 sizes_2
LM008   one     NULL
LM009           NULL
LM010           NULL
lm011           NULL

非常感谢任何帮助,

感谢。

3 个答案:

答案 0 :(得分:1)

试试这个:

select itemid,title,description,cat,fibre,washing,colours,promo,
       isnull(max(case when seqnum = 1 then chm_sizegrouping end),'') as sizes_1,
       isnull(max(case when seqnum = 2 then chm_sizegrouping end),'') as sizes_2,
........

答案 1 :(得分:0)

不幸的是,您必须对可以检索ISNULL值的每个字段使用NULL函数。

答案 2 :(得分:0)

只需将ISNULL项检查放在MAX()函数的外部,如下所示:

select itemid,title,description,cat,fibre,washing,colours,promo,
    isnull(max(case when seqnum = 1 then chm_sizegrouping end), '') as sizes_1,
    isnull(max(case when seqnum = 2 then chm_sizegrouping end),'') as sizes_2,
    max(case when seqnum = 3 then chm_sizegrouping end) as sizes_3,
    max(case when seqnum = 4 then chm_sizegrouping end) as sizes_4)