有没有办法在oracle中查询不同的行记录?

时间:2016-02-12 23:54:37

标签: sql oracle

我在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

1 个答案:

答案 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'