Resposta curta:
- referências a aliases na lista SELECT ou
- Expressões com alias
A única documentação que encontrei sobre isso até agora foi:https://bugs .mysql.com/bug.php?id=79549
Nesse link tem o seguinte:
[9 de dezembro de 2015 15:35] Roy Lyseng...Aqui está um histórico mais longo para a decisão original:
Ao contrário das referências a aliases em subconsultas na cláusula WHERE (e em GROUP BY, nesse caso), não há razão (exceto conformidade padrão) para não permitirmos referências a aliases na lista SELECT , pois devem estar disponíveis na mesma fase de execução da consulta. Mas o suporte no 5.6 era bastante arbitrário:
Dado isso:crie a tabela t1(a int, b int),
O alias na lista SELECT não é válido:
select a+b as c,c+1 from t1;
Mas dentro de uma subconsulta, a referência a c é válida:
select a+b as c,(select c+1) from t1;
E a subconsulta deve ser após a definição do alias:
select (select c+1),a+b as c from t1;
Portanto, é fácil dizer que o suporte para referências a aliases na lista SELECT foi bastante ad hoc. No entanto, tentaremos reimplementar a solução antiga, mas sem tentar limpar as falhas óbvias no suporte a esse recurso. Mas a referência de aliases em subconsultas na cláusula WHERE não será reimplementada.
Ainda estou procurando documentação além do relatório de bug descrevendo esta funcionalidade nos documentos padrão; mas até agora sem sorte.