查找每个Id SQL查询的第一条记录

Bil*_*lla 2 sql sql-server sql-server-2005

我在下面的表中有ID和Number列

ID Number 
1 34534 
1 45345 
1 45353 
2 56454 
2 45645 
3 65756 
3 67565 
3 87865 
3 38932 
4 36468 
4 45332 
Run Code Online (Sandbox Code Playgroud)

预期产出是

1 34534 
2 56454 
3 65756 
4 36468 
Run Code Online (Sandbox Code Playgroud)

我需要为每个Id获取所有的第一个数字.

如何编写查询来实现此目的?我不是SQL的专家.:(

注意:使用SQL Server 2005

xan*_*tos 6

尝试这样的事情:

SELECT ID, Number FROM
    (SELECT ID, Number, ROW_NUMBER() OVER (PARTITION BY ID ORDER BY Number) RN FROM MyTable) Base
    WHERE Base.RN = 1
Run Code Online (Sandbox Code Playgroud)

显然MyTable是你的桌子的名字

啊......显然2 56454是不可能的.你只能得到2 45645.除非使用ORDER BY子句,否则sql表中的顺序是一种错觉.否则SQL Server可以重新排序它想要的行.