@denislysenko
data engineer

Как используя такую конструкцию .* в sql можно дать название подстолбцам, которые будут выведены?

Есть вложенный столбец, например, название этого столбца food. Столбец food содержит в себе 2 вложенных столбца: Milk и Oil

Чтобы вывести эти подстолбцы можно использовать следующие конструкции:
select food.* from table
Либо
select food.Milk, food.Oil from table
Но, мне нужно чтобы название этих выводимых столбцов было food_Milk и food_Oil
Это можно реализовать так:
select food.Milk as food_Milk, food.Oil as food_Oil from table


НО, у меня нету возможности использовать это
select food.Milk as food_Milk, food.Oil as food_Oil from table

так как я не знаю название подстолбцов, которые будут выведены

И мне нужно использовать такую консрукцию:
select food.* from table
То есть, я могу использовать только точку со звездочкой, но я не знаю как сразу получить эти столбцы с таким названием:
food_Milk, food_Oil

То есть название столбцов, должно наследоваться от родительского столбца, а потом нижнее подчеркиваниие и название самого подстолбца

Возможно ли вообще использую конструкцию .* сразу же изменять их название при этом не зная какое количество подстолбцов там лежит?
Возможно ли вообще использую конструкцию .* изменить название столбцов сразу?
  • Вопрос задан
  • 171 просмотр
Решения вопроса 2
@Myclass
Сделай подходящую логику и сделай из неё view, а потом обращайся к ней с твоим select * from твоя_view
Ответ написан
Комментировать
@alexalexes
И мне нужно использовать такую конструкцию:
select food.* from table

Странное требование, но можно обойти оборачиванием.
select food.*
from(select t.Milk as food_Milk, t.Oil as food_Oil
        from table as t) as food
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы