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开始,如果指定的序号不在允许的范围内,系统会报出一个异常

  • 相关阅读:
    start tag, end tag issues in IE7, particularly in xslt transformation
    用SandCastle为注释生成chm文档
    Firebug
    架构的重点
    Linux Shell常用技巧(十) 管道组合
    Linux JDK升级
    Linux Shell常用技巧(十二) Shell编程
    Packet Tracer 5.0实验(一) 交换机的基本配置与管理
    Linux Shell常用技巧(六) sort uniq tar split
    Linux Shell常用技巧(二) grep
  • 原文地址:https://www.cnblogs.com/KiloNet/p/2622050.html
Copyright © 2011-2022 走看看