仅显示基于Key的前1个值

时间:2017-03-23 02:35:59

标签: sql distinct

我只需要显示基于关键字段的Grandtotal的前1值,剩下的应该打印为null,

如下所示,对于单个文档,我不得仅显示一个总计,第二个应显示为NULL。

DOCUMENTNO  TOTAL      DELIVERYCHARGE   GRANDTOTAL
BR17000079  59878.80       0.00          132639.52
BR17000079  59878.80       0.00          132639.52

如果有人有想法,请帮我解决这个问题。

谢谢,

1 个答案:

答案 0 :(得分:2)

在SQL中,没有“第一”或“第二”行 - 除非列指定了排序。您显示的列都具有相同的值,因此没有“第一个”。

您可以将一个的值设置为NULL

select t.DOCUMENTNO, t.TOTAL, t.DELIVERYCHARGE
       (case when row_number() over (partition by t.DOCUMENTNO order by t.DOCUMENTNO) = 1
             then GRANDTOTAL
        end) as GRANDTOTAL
from t;