视图内的排名函数

Ranking functions inside views

在 sql 服务器(2008 r2)尤其是

的视图中使用排名函数是否可靠
over (order by ...) 

子句 ?

据了解,

order by 

视图中的子句不是一个好方法,即使您指定

top (100) percent

row_number() over(order by myColumn)

Sql 服务器设计者抱怨它,但我找不到任何关于此组合的可靠信息。

row_number 在视图中工作正常。设计器只处理有限的语法。

尽管如此,它不保证 select 从视图中的任何特定顺序。为此,您需要在外部查询中进行排序。

需要注意的一个问题是,如果您有一个 partition by,分区列 won't be pushed down 上的参数化谓词超过了它,即使这样做会更有效。出于这个原因,参数化的内联 table 值函数可能是首选。