Sql 从组中选择顶级记录

Sql 从组中选择顶级记录,sql,sql-server-2005,Sql,Sql Server 2005,如何从这个表中删除 Name Code ABC Code1 DEF Code1 GHI Code2 JKL Code2 OMN Code3 得到以下结果: Name Code ABC Code1 GHI Code2 OMN Code3 有什么简单的解决办法吗?我认为您希望结果按字母顺序排列 SELECT MIN(Name), Code FROM MyTable GROUP BY

如何从这个表中删除

Name  Code
ABC     Code1
DEF     Code1
GHI     Code2
JKL     Code2
OMN     Code3
得到以下结果:

Name  Code
ABC   Code1
GHI   Code2
OMN   Code3

有什么简单的解决办法吗?

我认为您希望结果按字母顺序排列

SELECT
         MIN(Name), Code
FROM 
         MyTable 
GROUP BY 
         Code
按c2 ASC的c2顺序从表组中选择最小值(c1)、c2

若您的“TOP”是由“first in alphabtetical order”定义的,那个么您可以简单地使用一个带有MIN聚合的group by子句

SELECT MIN(Name),Code
FROM Table
GROUP BY Code
SELECT MIN(Col1), Col2 FROM table GROUP BY Col2

否则,您将需要另一列,例如递增的uniqueid或创建日期。

对不起,我将代码更改为Name。