2011-12-13 79 views
0

一排我有如下表:选择每个ID

180555 <id>404</id> Meetjesland 404 2067 314 
180555 <id>404</id> Aalter  405 2067 404 
504684 <id>2104</id> Ballonvaart 723 2067 722 
504684 <id>778</id> Activiteit 1086 2067 313 

我需要通过ID(左列)本组 所以它应该是这样的

180555 <id>404</id> Meetjesland 404 2067 314 
504684 <id>2104</id> Ballonvaart 723 2067 722 

我的意思是,第二,第三,...具有相同ID的行不会提供更多信息,因此它不应该显示在实际中。我不能代表任何帮助

+0

如何决定哪一个** **具有相同ID的两个(或更多)的行选择?根据什么标准? (如果您在数据示例中显示**列名称**,这将有所帮助......) –

+0

为什么选择行(ebd 314)上的行2(结束404)。 722/313对也一样?你想*任何*随机行?如果是这样,这没有意义 – gbn

+0

是的,其他信息对我来说没有意义。我只需要一行(第一个)用于一个ID – Ozkan

回答

2

这将选择每列1.
一个任意行你并没有选择做dintinct,因为有两个有不同值的列..

由于其行,你想

SELECT 
    ... 
FROM 
    (SELECT 
     *, 
     ROW_NUMBER() OVER (PARTITION BY Column1 ORDER BY (SELECT 1)) AS rn 
    FROM 
     MyTable 
    ) foo 
WHERE 
    rn = 1 
+0

我不支持'over'。这是为SQL 2008? – Ozkan

+0

@Ozkan:是的。 http://msdn.microsoft.com/en-us/library/ms189461.aspx现在,如前所述,问题在于如何运行/创建代码。修复这个问题,不要抱怨http://stackoverflow.com/q/8477500/27535 – gbn