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
哪个数据库管理系统??您尝试了什么查询??哪个数据库管理系统??您尝试了什么查询??