嗨,我有下面的表,
Name RN AGE
A 1 21
B 2 22
C 3 23
我想将最后一个记录的年龄仅显示为空的剩余列值,如下所示
Name RN AGE
A 1
B 2
C 3 23
答案 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 列聚合并使用它们。