我在Oracle中有以下表格,除“名称”外,所有字段都相同:
Name, Age, Nickname, FavSport
A, 5, Jordan, Hockey
A, 6, Jordan, Hockey
B, 5, Jordan, Hockey
B, 6, Jordan, Hockey
有没有办法执行查询,以便根据单个字段以外的所有其他字段获取“不同记录”?
即。样本输出
A, 5, Jordan, Hockey
A, 6, Jordan, Hockey
或者是否有更好的方法可以获得:
A-B, 5, Jordan, Hockey
A-B, 6, Jordan, Hockey
答案 0 :(得分:1)
是的,有:
select LISTAGG(name, '-'),
Age, Nickname, FavSport
from yourTable
group by Age, Nickname, FavSport
以上查询将为您提供:
A-B, 5, Jordan, Hockey
A-B, 6, Jordan, Hockey
要在第一个输出上解决一个简单的where子句:
select name,
Age, Nickname, FavSport
from yourTable
Where name = 'A'