联机丛书表明“排序列可以包含表达式,但是当数据库处于SQL Server(90)兼容模式时,表达式无法解析为常量。” 但是,它没有定义“常量”。
通过考虑和实验,可以清楚地看出这意味着可以在编译时成功计算出其常量值的表达式。
DECLARE @Foo intSELECt ROW_NUMBER() OVER (ORDER BY @Foo) FROM master..spt_valuesSELECt ROW_NUMBER() OVER (ORDER BY $/0) FROM master..spt_valuesSELECt ROW_NUMBER() OVER (ORDER BY $/1) FROM master..spt_values



