Problemas com alias
Você pode usar um alias para referir a uma coluna no GROUP BY
, ORDER BY
, ou na parte HAVING
. Aliases podem ser usados para dar as colunas nomes melhores:
SELECT SQRT(a*b) as rt FROM nome_tabela GROUP BY rt HAVING rt > 0; SELECT id,COUNT(*) AS cnt FROM nome_tabela GROUP BY id HAVING cnt > 0; SELECT id AS 'Customer identity' FROM nome_tabela;
Note que o padrão SQL não permite que você se refira a uma alias na cláusula WHERE
. Isto é porque quando o código WHERE
é executado o valor da coluna ainda não pode ser determinado. Por exemplo, a seguinte consulta é ilegal:
SELECT id,COUNT(*) AS cnt FROM nome_tabela WHERE cnt > 0 GROUP BY id;
A instrução WHERE
é executada para determinar quais linhas devem ser incluídas na parte GROUP BY
enquanto HAVING
é usado para decidir quais linhas o conjunto de resultados deve usar.