Необходимо получить вывод 2 таблиц в одном столбце, используя только соединения - PullRequest
0 голосов
/ 26 мая 2019

У меня есть этот вопрос сценария, который должен быть решен только с помощью соединений. не может использовать, кроме как, пересечь или союз.

пример кода:

--demo setup
create table t1 (id int)
insert into t1 values (1),(2),(3)

create table t2 (id int)
insert into t2 values (4),(5),(6)

--join
select t1.id,t2.id
from t1 full outer join
t2 on t1.id=t2.id

- после вступления я получаю

id          id
----------- -----------
1           NULL
2           NULL
3           NULL
NULL        4
NULL        5
NULL        6

- Но мне нужно это

id          
----------- 
1           
2           
3           
4        
5        
6  

Может ли кто-нибудь помочь мне с этим? я знаю, что это легко сделать с помощью объединения, но эту проблему нужно решить только с помощью соединений.

любая помощь приветствуется ....

Ответы [ 3 ]

0 голосов
/ 26 мая 2019

Вы можете использовать этот код:

 SELECT case when t1.id IS NULL THEN t2.id ELSE t1.id END AS id
 FROM t1 FULL OUTER JOIN t2
 ON t1.id=t2.id

Как вы сказали, Use From Union

select * from t1
union 
select * from t2
0 голосов
/ 26 мая 2019

Хотя UNION ALL - лучший вариант, вы можете использовать следующий скрипт:

SELECT 
CASE WHEN C.ID1 IS NULL THEN C.ID2 ELSE C.ID1 END V
FROM
(
    SELECT * FROM
    (
        SELECT 'T1' TabName1,id ID1 FROM @t1 
    )A
    FULL JOIN (
        SELECT 'T2' TabName2,id ID2 FROM @t2
    )B
    ON A.TabName1 = B.TabName2
)C
ORDER BY 1
0 голосов
/ 26 мая 2019

- решена задача после добавления регистра в код.

select case when t1.id is null then t2.id else t1.id end as id
from t1 full outer join
t2 on t1.id=t2.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...