Sql server 更改SQL显示结果(按名称分组)
我的SQL查询可以显示以下结果:Sql server 更改SQL显示结果(按名称分组),sql-server,Sql Server,我的SQL查询可以显示以下结果: Name Project Date Peter A 2014-12-11 Peter C 2014-12-12 Peter D 2014-12-13 John B 2014-12-12 我想如下所示显示结果。没有显示相同的名称 Name Project Date Peter A
Name Project Date
Peter A 2014-12-11
Peter C 2014-12-12
Peter D 2014-12-13
John B 2014-12-12
我想如下所示显示结果。没有显示相同的名称
Name Project Date
Peter A 2014-12-11
C 2014-12-12
D 2014-12-13
John B 2014-12-12
我的数据库服务器是MS SQL server 2012标准。如何通过SQL查询得到上述结果
谢谢
Tony您可以使用ROW\U NUMBER函数执行以下操作 使用window函数查找每个groupname中的第一个日期
SELECT CASE WHEN rn = 1 THEN Name ELSE '' END Name,
Project,
Dates
FROM (SELECT Row_number()OVER (partition BY Name ORDER BY Dates) rn,*
FROM Tablename) a
;WITH CTE AS
(
SELECT Name As OldName, Project, Date,
Row_Number() OVER (Partition By Name Order By Project) rn
From YourTable
)
SELECT CASE WHEN rn = 1 THEN OldName ELSE '' End Name, Project, Date
FROM CTE
ORDER BY OldName, rn
SELECT CASE WHEN rn = 1 THEN Name ELSE '' END Name,
Project,
Dates
FROM (SELECT Row_number()OVER (partition BY Name ORDER BY Dates) rn,*
FROM Tablename) a