“选择2 * 2为'm',(m * 2)为'n';”返回错误

时间:2013-10-10 13:05:50

标签: mysql alias

执行select 2*2 as 'm', (m*2) as 'n'返回

 /* SQL Error (1054): Unknown column 'm' in 'field list' */

有没有办法在columns子句中使用列的别名?

也:

select sum(x) as sum, sum*2 as doubleSum from myTable;

3 个答案:

答案 0 :(得分:2)

您可以使用变量执行此操作,例如

select @m:=2*2 as m, @m*2 as n

- 您可能希望稍后使用n(实际上,这将是@n您将能够使用,但不能直接使用n,那么它将是

select @m:=2*2 as m, @n:=@m*2 as n

答案 1 :(得分:2)

您可以使用子查询执行此操作:

select m, (m*2) as n
from
(
  select 2*2 as m
) sub_query

答案 2 :(得分:1)

编辑:OP编辑的问题

如果您需要参数,请使用以下语法

select @m:=2 as m, @m+1 as n

select @m:=2*2 as 'm', (@m*2) as 'n'

也适用于现实生活中的例子

select @sum:=sum(impression) as sum, (@sum)*2 as doubleSum from kpi_funnel;