执行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;
答案 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;