zoukankan      html  css  js  c++  java
  • 如何联合使用Union和Order by

    如果使用类似下面的SQL语句:

    select columnA, columnB from tableA where columnA = 'Condition 1'
    union
    select columnC, columnD from tableB where columnC = 'Condition 1'
    order by columnA asc

     系统会报错:
    消息 207,级别 16,状态 1,第 4 行
    列名 'columnA' 无效。
    消息 104,级别 16,状态 1,第 4 行
    如果该语句包含 UNION、INTERSECT 或 EXCEPT 运算符,则 ORDER BY 项必须出现在选择列表中。

    问题原因:
    既然把多行给union了,把每列叫成什么名字都是不妥当的。。。只要采用列的序号即可。

    select columnA, columnB from tableA where columnA = 'Condition 1'
    union
    select columnC, columnD from tableB where columnC = 'Condition 1'
    order by 2 asc

    这里需要注意的是,序号从1开始,如果指定的序号不在允许的范围内,系统会报出一个异常

  • 相关阅读:
    [HNOI 2009] 有趣的数列
    [HAOI2015] 树上染色
    [BZOJ 2654] tree
    【图论 搜索】bzoj1064: [Noi2008]假面舞会
    【倍增】7.11fusion
    【二分 贪心】bzoj3477: [Usaco2014 Mar]Sabotage
    【计数】7.11跳棋
    概述「贪心“反悔”策略」模型
    复习计划里的低级错误
    【模拟】bzoj1686: [Usaco2005 Open]Waves 波纹
  • 原文地址:https://www.cnblogs.com/KiloNet/p/2622050.html
Copyright © 2011-2022 走看看