Задать вопрос
@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 не принимает алиас нового столбца как аргумент?
  • Вопрос задан
  • 105 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Инженер по тестированию
    5 месяцев
    Далее
  • Яндекс Практикум
    Java-разработчик
    10 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
Решения вопроса 1
@Akela_wolf
Extreme Programmer
Заверните в подзапрос и все будет ОК
SELECT new_name, length(new_name) FROM (
  select 'Name is ' || first_name as new_name from table
);


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

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

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