TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
在由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运算结果时,应尽量使用指定位置列序号的方式,这样可以避免出错。
源码下载:http://file.javaxxz.com/2014/10/30/000038015.zip |
|