美文网首页
Oracle中UNION和ORDER BY共用方法

Oracle中UNION和ORDER BY共用方法

作者: 看看你的肥脸 | 来源:发表于2019-03-30 17:39 被阅读0次

问题

SQL语句中,UNION拼接两个单独的SQL时候,单独的SQL中加入ORDER BY会报错,ORDER BY只能放在句末。

// 会报错的语句
SELECT S.S_ID AS ID,S.S_NAME AS NAME
FROM STUDENT S
ORDER BY S_NAME
UNION
SELECT S2.S_ID AS ID,S2.S_NAME AS NAME
FROM STUDENT2 S2
ORDER BY S_NAME
// 可以正常执行的语句
SELECT S.S_ID AS ID,S.S_NAME AS NAME
FROM STUDENT S
UNION
SELECT S2.S_ID AS ID,S2.S_NAME AS NAME
FROM STUDENT2 S2
ORDER BY S_NAME

但是要根据每条分语句的字段来排序的话,这样写是不行的。

解决方法

解决方法有两种

一、将结果集当做一个临时表再进行排序

SELECT T.* FROM (
SELECT S.S_ID AS ID,S.S_NAME AS NAME
FROM STUDENT S
UNION
SELECT S2.S_ID AS ID,S2.S_NAME AS NAME
FROM STUDENT2 S2) T
ORDER BY T.NAME

二、单独对表进行排序后再进行合并

SELECT T.* FROM (
SELECT S.S_ID AS ID,S.S_NAME AS NAME
FROM STUDENT S ORDER BY T.NAME) T
UNION
SELECT T2.* FROM (
SELECT S2.S_ID AS ID,S2.S_NAME AS NAME
FROM STUDENT2 S2 ORDER BY T.NAME) T2

相关文章

  • Oracle中UNION和ORDER BY共用方法

    问题 SQL语句中,UNION拼接两个单独的SQL时候,单独的SQL中加入ORDER BY会报错,ORDER BY...

  • iOS共用体

    iOS共用体 一、何为共用体 在C语言中有union联合体/共用体。 union中可以定义多个成员,union的大...

  • C语言的一些符号含义、 函数含义

    union:共用体/联合体 union 共用体名{成员列表};类似结构体,是一群变量的集合,和集合不同的是: 共用...

  • C++的共用体使用场景

    C++使用union 描述 union是C语言中一种声明共用体的数据类型,使用union声明的共用体只会占用共用体...

  • English Advisor Wanted-招聘启事

    In order to assist the students' union of our school with...

  • 共用体union

    union data{ int i; char ch; double d; }a,b,c; 将几种不同类型的变量...

  • union共用体

    重要特征:共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员一个有趣的应用使用共用体判断大小端 序列化...

  • UNION ALL、UNION与ORDER BY

    一直以为UNION和UNION ALL就是把每个子查询的结果集合并起来,只是UNION要去掉重复项。直到今天发现了...

  • C语言共用体

    共用体 共用体的格式:union 共用体名称{数据类型 属性名称;数据类型 属性名称;... ...}共用体定义的...

  • 02--对象本质02--isa本质

    [TOC] 一、联合体 Union 1.1 联合体的特性 联合体 union 也成共用体,有以下特性: union...

网友评论

      本文标题:Oracle中UNION和ORDER BY共用方法

      本文链接:https://www.haomeiwen.com/subject/zalsbqtx.html