Um alias pode ser usado em uma lista de seleção de consulta para dar um nome diferente a uma coluna. Você pode usar o alias em
GROUP BY
, ORDER BY
, ou HAVING
cláusulas para se referir à coluna:SELECT SQRT(a*b) AS root FROM tbl_name
GROUP BY root HAVING root > 0;
SELECT id, COUNT(*) AS cnt FROM tbl_name
GROUP BY id HAVING cnt > 0;
SELECT id AS 'Customer identity' FROM tbl_name;
O SQL padrão não permite referências a aliases de coluna em um
WHERE
cláusula. Esta restrição é imposta porque quando o WHERE
cláusula for avaliada, o valor da coluna pode ainda não ter sido determinado. Por exemplo, a seguinte consulta é ilegal:SELECT id, COUNT(*) AS cnt FROM tbl_name
WHERE cnt > 0 GROUP BY id;
O
WHERE
cláusula determina quais linhas devem ser incluídas no GROUP BY
cláusula, mas se refere ao alias de um valor de coluna que não é conhecido até que as linhas tenham sido selecionadas e agrupadas pelo GROUP BY
. Na lista de seleção de uma consulta, um alias de coluna entre aspas pode ser especificado usando caracteres identificadores ou de aspas de string:
SELECT 1 AS `one`, 2 AS 'two';
Em outras partes da instrução, as referências citadas ao alias devem usar aspas de identificador ou a referência é tratada como um literal de string. Por exemplo, esta instrução agrupa pelos valores no id da coluna, referenciados usando o alias
a
:SELECT id AS 'a', COUNT(*) AS cnt FROM tbl_name
GROUP BY `a`;
Mas esta instrução agrupa pela string literal 'a' e não funcionará conforme o esperado:
SELECT id AS 'a', COUNT(*) AS cnt FROM tbl_name
GROUP BY 'a';
Fonte:https://docs.oracle .com/cd/E17952_01/refman-5.0-en/problems-with-alias.html