如何最后对NULL值进行排序 - 用“按汇总/立方体分组”组合汇总行

如何最后对NULL值进行排序 - 用“按汇总/立方体分组”组合汇总行

问题描述:

使用GROUP BY ... WITH ROLLUP时,分组列中的小计/总计行数用NULL值表示。这是一个很好的功能,但我希望总数在细节值下,但NULL s在开始时排序。如何最后对NULL值进行排序 - 用“按汇总/立方体分组”组合汇总行

例子:

SELECT Year, Quarter, SUM(Amount) AS Amount 
FROM Table 
GROUP BY Year, Quarter WITH ROLLUP 
ORDER BY Year, Quarter 

Year|Quarter|Amount   Year|Quarter|Amount 
----|-------|------ ---> ----|-------|------ 
NULL| NULL| 120   1999|  1| 10 
1999| NULL| 40   1999|  2| 10 
1999|  1| 10   1999|  3| 10 
1999|  2| 10   1999|  4| 10 
1999|  3| 10   1999| NULL| 40 
1999|  4| 10   2000|  1| 20 
2000| NULL| 80   2000|  2| 20 
2000|  1| 20   2000|  3| 20 
2000|  2| 20   2000|  4| 20 
2000|  3| 20   2000| NULL| 80 
2000|  4| 20   NULL| NULL| 120 

如何在最后得到他们?

我知道我可以用某些东西替换NULL的值,这些东西可能在某些其他列中进行排序,但这是一个糟糕的解决方法。

+0

编辑问题添加样本数据和期望的输出,这可能有助于推导出解决方案。 –

+0

替代解决方案,是先排序您的NULL值然后休息。 –

+0

@YogeshSharma新增了一个例子,很好的建议。但我不明白你的替代​​解决方案。你能解释一下吗? –

只要改变

ORDER BY Year, Quarter 

ORDER BY GROUPING(Year), Year, GROUPING(Quarter), Quarter 

说明:此功能适用于所有其他人返回1总行和0。