Spec-Zone .ru
спецификации, руководства, описания, API
|
Псевдоним может использоваться в списке выборки запроса, чтобы дать столбцу другое имя. Можно использовать
псевдоним в GROUP BY
, ORDER BY
, или HAVING
пункты, чтобы обратиться к столбцу:
SELECT SQRT(a*b) AS root FROMtbl_name
GROUP BY root HAVING root > 0;SELECT id, COUNT(*) AS cnt FROMtbl_name
GROUP BY id HAVING cnt > 0;SELECT id AS 'Customer identity' FROMtbl_name
;
Стандартный SQL отвергает ссылки на псевдонимы столбца в a WHERE
пункт. Это
ограничение вводится потому что когда WHERE
пункт оценивается, значение столбца еще
не могло быть определено. Например, следующий запрос недопустим:
SELECT id, COUNT(*) AS cnt FROM tbl_name
WHERE cnt > 0 GROUP BY id;
WHERE
пункт определяет, какие строки должны быть включены в GROUP
BY
пункт, но это обращается к псевдониму значения столбца, которое не известно, пока строки не были
выбраны, и сгруппированы GROUP BY
.
В списке выборки запроса заключенный в кавычки псевдоним столбца может быть определен, используя идентификатор или строковые символы заключения в кавычки:
SELECT 1 AS `one`, 2 AS 'two';
В другом месте в операторе, заключенные в кавычки ссылки на псевдоним должны использовать заключение в кавычки
идентификатора, или ссылка обрабатывается как строковый литерал. Например, этот оператор группы значениями в
столбце id
, использование, на которое ссылаются, псевдонима `a`
:
SELECT id AS 'a', COUNT(*) AS cnt FROM tbl_name
GROUP BY `a`;
Но этот оператор группы литеральной строкой 'a'
и не будет работать как ожидалось:
SELECT id AS 'a', COUNT(*) AS cnt FROM tbl_name
GROUP BY 'a';