Имена столбцов для таблицы, сформированной UNION

Учитывая пару простых таблиц вроде этого:

create table R(foo text);
create table S(bar text);

Если бы мне пришлось объединить их в запрос, как бы я назвал столбец?

select T.????
from (
    select foo
    from R
    union
    select bar
    from S) as T;

Теперь в mysql я могу ссылаться на столбец T как на «foo» - имя соответствующего столбца для первого отношения в объединении. Однако в sqlite3 это не работает. Есть ли способ сделать это стандартным для всех реализаций SQL?

Если нет, то как насчет только sqlite3?

Исправление: sqlite3 все-таки позволяет ссылаться на столбец T как на "foo"! Ой!

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
12
0
29 126
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Попробуйте дать столбцам псевдоним;

select T.Col1
from (
    select foo as Col1
    from R
    union
    select bar as Col1
    from S) as T;

или Если имя столбца не нужно, то будет достаточно T. *.

Ответ принят как подходящий

Хотя правила написания не существует, мы можем использовать имена столбцов из первого подзапроса в запросе объединения для получения результатов объединения.

вам нужны только псевдонимы столбцов только при первом выборе (проверено в SQl Server 2008 R2)

select T.Col1
from (
    select 'val1' as Col1
    union
    select 'val2'
    union
    select 'val3'     
) as T;

Другие вопросы по теме