Учитывая пару простых таблиц вроде этого:
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"! Ой!


Попробуйте дать столбцам псевдоним;
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;