SQL列重复时取第一行(可用于无主键、uniqueidentifier主键表)

SQL Server表如下

字段

表设计(表名:Table)
列名 数据类型   允许空 备注
ID uniqueidentifier 主键
BID uniqueidentifier 非主键,可重复  
CreateTime   CreateTime 默认值getdate()

 

 

 

我们需要查询此表中BID列重复值的第一条记录,那么可以使用到下面的SQL 语句。

Select * From  (Select *,(row_number() Over(partition By BID Order BY CreateTime)) RowNum From Table) T where RowNum=1


我们查MSDN可知:http://msdn.microsoft.com/zh-cn/library/ms186734.aspx,ROW_NUMBER是“返回结果集分区内行的序列号,每个分区的第一行从 1 开始”,所以我们取分区为1即去除了BID列重复值的第一条记录。

posted @ 2013-01-09 19:07  学无资金  阅读(1927)  评论(0编辑  收藏  举报