日期:2014-05-16  浏览次数:20393 次

查询时用ROW_NUMBER()返回行号

下面的查询会返回一个包含行号的新列

?

SELECT ROW_NUMBER() OVER (PARTITION BY partition_column ORDER BY order_column)
FROM   <tablename>

?

ORDER BY后为 排序列 ,必须指明

?

PARTITION BY 可选,它将结果集按照分区列 分为多个分区,函数分别应用于每个分区,并为每个分区重新启动计算。

?

如下列查询结果

Rownumber??? Category ?? ProductName

???????? 1????????????? ? Book????? ? ??? My Life

???????? 2 ?????????? ? ? Book????? ? ??? Harry Poter

???????? 3 ?????????? ? ? Book????? ? ??? Beginning C++

???????? 1??????????? ? ? Pencil ?? ? ??? 2B

???????? 2 ?????????? ? ? Pencil ?? ? ??? HB