仅包含具有特定列值的第一个条目

时间:2012-07-26 21:46:26

标签: sql ms-access odbc

使用SELECT * FROM myTable时,我会看到一个如下所示的列表:

A    473
A    234
B    752
C    136

但是,我不希望获得具有相同字母的多行。我只想获得带有某个字母的第一个条目,然后跳到下一个,如下所示:

A    473
B    752
C    136

现在,I know how to do this when I know what type of data I have。但是,我想编写一个SQL命令,无论表格是什么,都可以工作,也就是说,SELECT * FROM myTable WHERE duplicates of column1 are discarded

编辑:我真的不需要成为每个唯一column1值的第一个条目。任何行都可以。

编辑2:我非常希望sollution能够用于字符串和数字。

3 个答案:

答案 0 :(得分:2)

您可以使用某种聚合函数来获取所需的column2值。例如:

SELECT Column1, MAX(Column2)
FROM MyTable
GROUP BY Column1

您可以阅读各种聚合函数及其执行的内容here。该链接特定于SQL Server,但同样的想法适用于许多DBMS。

答案 1 :(得分:1)

您可以使用GROUP BYSELECT column1 FROM myTable GROUP BY column1可行:

A
B
C

如果你想要column2,你需要选择一个聚合函数,例如MAXSELECT column1,MAX(column2) FROM myTable GROUP BY column1

A    473
B    752
C    136

这将为myTable中的每一行提供给定的column1和最高的column2

答案 2 :(得分:-1)

你可以使用“rownum”功能

例如:

select * from table_name where rownum < 2;

o / p:它会显示第一行条目。