仅在sql server中显示最后一条记录的列值

时间:2018-03-19 07:16:17

标签: sql sql-server

嗨,我有下面的表,

Name RN  AGE
  A   1   21
  B   2   22
  C   3   23

我想将最后一个记录的年龄仅显示为空的剩余列值,如下所示

Name RN   AGE
  A   1   
  B   2   
  C   3   23

1 个答案:

答案 0 :(得分:0)

使用窗口功能

SELECT *,
         (CASE WHEN MAX(AGE) OVER () = AGE THEN CAST(AGE AS VARCHAR(10)) ELSE '' END) AGE1
FROM table

您也可以使用CROSS JOIN

SELECT *, 
         (CASE WHEN t.AGE <> c.MAXAGE THEN '' ELSE CAST(t.AGE AS VARCHAR(10)) END) AGE1
FROM table t CROSS JOIN (
      SELECT MAX(AGE) AS MAXAGE FROM table) c

这假定 AGE 方面的最后记录,否则您需要将 RN / Name 列聚合并使用它们。