欢迎来到天天文库
浏览记录
ID:34417960
大小:54.16 KB
页数:7页
时间:2019-03-05
《orderby子句的用法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、ORDERBY子句(Transact-SQL)★语法;ORDERBYorder_by_expression [COLLATEcollation_name] [ASC
2、DESC] [,...n][]::={ OFFSET{integer_constant
3、offset_row_count_expression}{ROW
4、ROWS} [ FETCH{FIRST
5、NEXT}{integer_constant
6、fetch_row_count_expression}{
7、ROW
8、ROWS}ONLY ]}★参数order_by_expression指定用于对查询结果集进行排序的列或表达式。可以将排序列指定为一个名称或列别名,也可以指定一个表示列在选择列表中所处位置的非负整数。可以指定多个排序列。别名必须是唯一的。ORDERBY子句中的排序列的顺序定义了排序结果集的结构。也就是说,按第一列对结果集进行排序,然后按第二列对排序列表进行排序,依此类推。ORDERBY子句中引用的列名必须明确对应于选择列表中的列,或对应于FROM子句中指定的表中定义的列。COLLATEcollation_name指定根据collation_
9、name中指定的排序规则应执行的ORDERBY操作,而不是表或视图中所定义的列的排序规则。collation_name既可以是Windows排序规则名称,也可以是SQL排序规则名称。有关详细信息,请参阅排序规则和Unicode支持。COLLATE仅适用于char、varchar、nchar和nvarchar类型的列。ASC
10、DESC指定按升序或降序排列指定列中的值。ASC按从最低值到最高值的顺序进行排序。DESC按从最高值到最低值的顺序进行排序。ASC是默认排序顺序。Null值被视为最低的可能值。OFFSET{integer_constant
11、offs
12、et_row_count_expression}{ROW
13、ROWS}指定开始从查询表达式返回行之前跳过的行数。该值可以是大于或等于零的整数常量或表达式。offset_row_count_expression可以是变量、参数或常数标量子查询。在使用子查询时,它无法引用在外部查询范围中定义的任何列。也就是说,它无法与外部查询相关联。ROW和ROWS是同义词,是为了与ANSI兼容而提供的。在查询执行计划中,将在TOP查询运算符的Offset属性中显示偏移行数值。FETCH{FIRST
14、NEXT}{integer_constant
15、fetch_row_coun
16、t_expression}{ROW
17、ROWS}ONLY指定在处理OFFSET子句后返回的行数。该值可以是大于或等于1的整数常量或表达式。fetch_row_count_expression可以是变量、参数或常数标量子查询。在使用子查询时,它无法引用在外部查询范围中定义的任何列。也就是说,它无法与外部查询相关联。FIRST和NEXT是同义词,是为了与ANSI兼容而提供的。ROW和ROWS是同义词,是为了与ANSI兼容而提供的。在查询执行计划中,将在TOP查询运算符的Rows或Top属性中显示偏移行数值。★最佳实践避免将ORDERBY子句中的整数指定为选择
18、列表中的列位置表示形式例如,虽然SELECTProductID,NameFROMProduction.ProductionORDERBY2等语句是有效的,但与指定实际列名相比,其他人并不容易理解该语句。此外,对选择列表的更改(如更改列顺序或添加新列)需要修改ORDERBY子句,以避免出现意外的结果。在SELECTTOP(N)语句中,始终使用ORDERBY子句。这是以可预知的方式指明哪些行受TOP影响的唯一方法。★互操作性在与SELECT…INTO语句一起使用以从另一来源插入行时,ORDERBY子句不能保证按指定的顺序插入这些行。在视图中使用OFFSET
19、和FETCH并不会更改该视图的Updateability属性。★限制和局限ORDERBY子句中的列数没有限制;但是,在ORDERBY子句中指定的列的总大小不能超过8,060个字节。无法在ORDERBY子句中使用ntext、text、image、geography、geometry和xml类型的列。在order_by_expression出现在排名函数中时,无法指定整数或常量。有关详细信息,请参阅OVER子句(Transact-SQL)。如果已在FROM子句中指定了表名的别名,则在ORDERBY子句中只能使用该别名来限定其列。如果SELECT语句包含以下
20、子句或运算符之一,则必须在选择列表中定义在ORDERBY子句中指定的列名和别名:·UNION运
此文档下载收益归作者所有