🖥 Почему не выполнится этот запрос?



SELECT

user_name,

YEAR(user_birth_date) AS year_of_birth

FROM

users

WHERE

year_of_birth = 2000




Ответ

Запрос не выполнится из-за обращения к псевдониму year_of_birth в выражении WHERE. Дело в том, что псевдонимы полей в SQL используются для форматирования данных уже полученных из базы. Поэтому их можно использовать только в выражениях, которые отвечают за оформление результата, таких как GROUP BY, ORDER BY и HAVING. В выражениях, отвечающих за получение данных, таких как WHERE, нужно использовать оригинальные имена полей.



WHERE

YEAR(user_birth_date) = 2000




@sqlhub