在由union运算符组合起来的select语句中,不能有order by语句,但是,可以对最后的结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在由union运算符组合起来的select语句中,不能有order by语句,但是,可以对最后的结相关的知识,希望对你有一定的参考价值。
在由UNION运算符组合起来的SELECT语句中,不能有ORDER BY子句。但是,可以把ORDER BY子句放在最后的SELECT语句后面,以便对最后(集合并操作)的结果表排序。 ORDER BY子句可以对任何列名排序。在SQL Server中,由于结果表把第一条SELECT语句中的列名作为结果表中的列名,因此,在上节最后的实例中,ORDER BY子句可以指定SNAME、DNAME和CNO中的任意列对结果排序,但是不能指定TNAME列。 实例20 对不同表的不同字段组成的集合采用UNION运算符 这里按CNO列对结果进行降序排列,代码如下。 SELECT SNAME AS NAME, DNAME, CNO FROM STUDENT WHERE CNO = 1 OR CNO = 10 UNIONSELECT TNAME AS NAME, DNAME, CNO FROM EACHER WHERE CNO = 1 OR CNO = 10
ORDER BY CNO DESC 运行结果如图所示。(表数据请下载) 在ORDER BY子句中,也可以指定位置列序号,对结果表进行排序,这样就不必考虑结果表的列名问题。 对上例结果进行排序,“ORDER BY CNO DESC”语句就可以写成“ORDER BY 3 DESC”,从而得到同样的结果。 说明 使用ORDER BY子句排序UNION运算结果时,应尽量使用指定位置列序号的方式,这样可以避免出错。 参考技术A 你的问题看不明白
SQL学习之组合查询(UNION)
1、大多数的SQL查询只包含从一个或多个表中返回数据的单条SELECT语句,但是,SQL也允许执行多个查询(多条SELECT语句),并将结果作为一个查询结果集返回。这些组合查询通常称为并或复合查询。
主要有两种情况需要使用组合查询:
(1)在一个查询中从不同的表返回结构数据
(2)对一个执行多个查询,按一个查询返回数据
2、使用UNION
使用UNION很简单,所要做的只是给出每条SELECT语句,然后再每条SELECT语句之间加上UNION关键字,这样所给出的SELECT结果集就能组合成一个结果集并返回。代码如下:
以上是关于在由union运算符组合起来的select语句中,不能有order by语句,但是,可以对最后的结的主要内容,如果未能解决你的问题,请参考以下文章