select (o.a - o.b) as 'ab',
       这里我想用 (o.a - o.b)的结果 ,只能更这样写?
       能用直接用别名'ab'呢?
 from order o
难道只能这样:
SELECT
  xx.*,
  xx.ab
FROM (SELECT (o.a - o.b) AS 'ab'
      FROM ORDER o) xx
请问可以实现在定义ab后直接操作ab吗

解决方案 »

  1.   

    在sql里面应该只能是这样,不能提前定义的。
      

  2.   

    select o.a - o.b ab  -- as 可以省略,ab 这个别名不要用单引号from "order" o -- order 是系统关键字,不要使用这种表名称,非要使用的话,要加双引号,并且注意大小写。
      

  3.   

    首先我们要了解SQL语句中关键字的执行顺序,其顺序是:
    from=1 where=2 group by=3 having=4 order by=5  select=6
    因为select在最后,所以其它关键字后面不能用字段别名,如你所说的“ab”,表的别名之所以可以用,是因为from排在第一。
      

  4.   

    SQL执行顺序是 先from再where 再group 再having 再select 后order所以order是可以用字段别名,其它是不行的。
      

  5.   

    你的顺序是对的,即
    from=1 where=2 group by=3 having=4  select=5 order by=6