@PyotR3213ty54

Почему LENGTH не принимает alias нового столбца как аргумент в SQL?

В базе есть таблица table:
id       first_name 
-------  ----------
3001     Пётр
3002     Василий
3003     Олег
3004     Дмитрий
3005     Евгений

Пишу sql запрос, который вывел бы фразу "Name is <здесь имя пользователя>" и длину этой фразы:
select 'Name is ' || first_name as new_name, length('Name is ' || first_name) from table;

Вывод:
Name is Пётр      | 12
Name is Василий   | 15
Name is Олег      | 12
...

Хочу написать запрос короче, сделав алиас первому столбцу и передав его в параметр функции length:
select 'Name is ' || first_name as new_name, length(new_name) from table;

Одна вылетает исключение:
"NEW_NAME": недопустимый идентификатор
 "%s: invalid identifier"

Можно ли в данном случае укоротить длину запроса? Почему lenght не принимает алиас нового столбца как аргумент?
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
@Akela_wolf
Extreme Programmer
Заверните в подзапрос и все будет ОК
SELECT new_name, length(new_name) FROM (
  select 'Name is ' || first_name as new_name from table
);


Пример (для MySQL)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы