Sql列表显示重复项

Sql列表显示重复项,sql,Sql,我有一张有名字和年份的桌子 Name Year Adam 1960 Adam 1970 Adam 1980 Alex 1955 Alex 1956 Brian 1963 Cody 1959 .... .... 如何列出和显示名称和年份的副本,使其显示3列:名称和2个“年份”列,以产生如下结果: Adam 1960 1970 Adam 1960 1980 Adam 1970 1980 Alex

我有一张有名字和年份的桌子

Name    Year     
Adam    1960
Adam    1970
Adam    1980
Alex    1955
Alex    1956
Brian   1963
Cody    1959
....    ....
如何列出和显示名称和年份的副本,使其显示3列:名称和2个“年份”列,以产生如下结果:

     Adam 1960 1970
     Adam 1960 1980
     Adam 1970 1980
     Alex 1955 1956
Adam有3个结果,因此它显示为3个不同的行:

但是对于Alex(2个结果),它只显示一行

此时将显示不重复的名称

它还需要按最左边的年份值排序,然后再按最右边的年份值排序

还有,有没有不使用“分组方式”的方法


谢谢

基本上,只需使用
内部连接
连接表即可

SELECT  a.Name, a.Year MinYear, b.Year MaxYEar
FROM    TableName a
        INNER JOIN TableName b
            ON a.Name = b.Name AND a.Year < b.Year
选择a.名称,a.年份MinYear,b.年份MaxYEar
从表名a
内部联接表名b
a.名称=b.名称,a.年份

基本上,只需使用
内部连接连接表即可

SELECT  a.Name, a.Year MinYear, b.Year MaxYEar
FROM    TableName a
        INNER JOIN TableName b
            ON a.Name = b.Name AND a.Year < b.Year
选择a.名称,a.年份MinYear,b.年份MaxYEar
从表名a
内部联接表名b
a.名称=b.名称,a.年份

您能试试这个解决方案吗:

SELECT t1.name, t1.age, t2.age FROM dbo.Table_1 AS t1
    CROSS APPLY dbo.Table_1 AS t2 
WHERE t1.name = t2.name
    AND t1.age < t2.age    
从dbo.Table_1中选择t1.name、t1.age、t2.age作为t1
交叉应用dbo.Table_1作为t2
其中t1.name=t2.name
t1.age
您能试试这个解决方案吗:

SELECT t1.name, t1.age, t2.age FROM dbo.Table_1 AS t1
    CROSS APPLY dbo.Table_1 AS t2 
WHERE t1.name = t2.name
    AND t1.age < t2.age    
从dbo.Table_1中选择t1.name、t1.age、t2.age作为t1
交叉应用dbo.Table_1作为t2
其中t1.name=t2.name
t1.age
哪个数据库管理系统??您尝试了什么查询??哪个数据库管理系统??您尝试了什么查询??