你如何在MySql中多次使用别名?

时间:2015-08-19 23:09:03

标签: mysql alias

我想在mysql中使用此代码,但不知道如何使其工作:

SELECT 
        no1 + no2 + no3 as 'total',
        'total' - no4 as 'arr', 
        (('total')+('arr')) * 2 / 100) as 'net'

FROM table

它显示了正确的结果,但我想要一个使用别名的压缩表单,我可以多次访问:

SELECT
       no1+ no2 +no3 as 'total', 
       (no1+ no2 +no3) - no4 as 'arr',
       ((no1+ no2 +no3) - 'no4') * 2 / 100 as 'per',
       ((no1+ no2 +no3) - 'no4') + (((no1+ no2 +no3) - 'no4') * 2 / 100) as 'net'
FROM table

2 个答案:

答案 0 :(得分:0)

简短的回答:这是不可能的。

来自documentation

的引用
  

可以使用AS alias_name select_expr 指定别名。别名用作表达式的列名,可以在GROUP BYORDER BYHAVING子句中使用。

我认为别名不能用在SELECT表达式中以避免循环依赖和无效引用(当别名表达式包含aggregate GROUP BY function时,f.e。)。

答案 1 :(得分:0)

你可以使用variables,而不是别名,有些像这样:

Select @total := no1 + no2 + no3 , @arr := @total - no4, @net := (((@total)+(@arr)) * 2 / 100) from table