Как я могу добавить два столбца последовательно (а не объединить)? - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь извлечь две таблицы из базы данных Oracle SQL и хочу соединить их последовательно, чтобы они выглядели так, как если бы они были одним списком.

В списке один есть элементы [1,2,3,4] В списке два есть элементы[a,b,c,d] Я хочу вывести [1,2,3,4,a,b,c,d]

Есть мысли?

Ответы [ 3 ]

0 голосов
/ 04 октября 2018

используйте объединение, я думаю, 1,2,3 как числовое значение, поэтому для преобразования его в varchar, как для объединения, вы должны использовать тот же тип данных

with t1 as (
    select 1 as id from dual union all
    select 2 from dual union all
    select 3 from dual union all
    select 4 from dual
), t2 as (
    select 'a' as item from dual union all
    select 'b' from dual union all
    select 'c' from dual union all
    select 'd' from dual
)
select cast(id as varchar(20)) as id from t1
union
select * from t2

demo

output
1
2
3
4
a
b
c
d
0 голосов
/ 04 октября 2018
SELECT id_1, value_column1 from table_1
  UNION
    SELECT id_2, value_column2 from table_2;

если типы столбцов различны - убедитесь, что вы преобразовали их в char () - результирующий тип должен быть одинаковым.https://docs.oracle.com/cd/B19306_01/server.102/b14200/queries004.htm

0 голосов
/ 04 октября 2018

Один вариант использует UNION с вычисляемым столбцом:

SELECT val
FROM
(
    SELECT val, 1 AS position FROM table1
    UNION ALL
    SELECT val, 2 AS position FROM table2
) t
ORDER BY
    position, val;

Демо

Обратите внимание, что я предполагаю, что все данныевот текст.Если нет, например, первая таблица будет числовой, то мы должны были бы выполнить приведение по пути.Но в любом случае это не главная тема вашего вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...