在由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 UNION
SELECT 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语句,但是,可以对最后的结的主要内容,如果未能解决你的问题,请参考以下文章

如何让多个不同的SQL语句一起执行?

union 和 join 和有啥不一样?

union 和 join 和有啥不一样?

SQL学习之组合查询(UNION)

mysql中 union连接

mysql的查询语句union是啥意思