A.5.4 Проблемы с alias
Псевдонимы можно использовать для ссылки на столбец в GROUP BY, ORDER BY
или в части HAVING
, а также для лучшего именования столбцов:
SELECT SQRT(a*b) as rt FROM table_name GROUP BY rt HAVING rt > 0;
SELECT id,COUNT(*) AS cnt FROM table_name GROUP BY id HAVING cnt > 0;
SELECT id AS "Customer identity" FROM table_name;
Заметим, что в ANSI SQL запрещено ссылаться на псевдоним в определении
WHERE
. Вызвано это тем, что при выполнении кода WHERE
значение столбца
может быть еще не определенным. Например, следующий запрос недопустим:
SELECT id,COUNT(*) AS cnt FROM table_name WHERE cnt > 0 GROUP BY id;
Выражение WHERE
выполняется, чтобы определить, какие строки следует
включить в часть GROUP BY
, тогда как HAVING
используется для тех строк из
результирующего множества, которые должны использоваться.