Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 join с полной выборкой из таблицы  [new]
Referee
Member

Откуда:
Сообщений: 151
добрый день.

товарищи, помогите с такой ситуацией.

сервер 2005
есть таблицы


declare	@tab1 table (a int)
declare	@tab2 table (b int)

insert into @tab1(a)
select 1 as a union all
select 2 as a

insert into @tab2(b)
select 3 as b union all
select 4 as b union all
select 5 as b 


select 
	* 
	from 
		(select a as a from @tab1) ta
		cross join -- тут надо какой-то хитрый join
		(select b as b from @tab2) tb


надо написать такой join чтобы было примерно так

ab
13
24
null5


возможно ли такое? в любой из таблиц может не быть никаких данных

Спасибо.
5 сен 11, 09:59    [11226424]     Ответить | Цитировать Сообщить модератору
 Re: join с полной выборкой из таблицы  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8877
...
right outer join
...
on .. = ...
5 сен 11, 10:00    [11226428]     Ответить | Цитировать Сообщить модератору
 Re: join с полной выборкой из таблицы  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31964
Referee
возможно ли такое?
Нужно в подзапросах пронумеровать данные (row_number), и потом связать их через full join
5 сен 11, 10:06    [11226463]     Ответить | Цитировать Сообщить модератору
 Re: join с полной выборкой из таблицы  [new]
Referee
Member

Откуда:
Сообщений: 151
alexeyvg,

Спасибо. то что надо!
5 сен 11, 10:12    [11226492]     Ответить | Цитировать Сообщить модератору
 Re: join с полной выборкой из таблицы  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8877
SIMPLicity_
...
right outer join
...
on .. = ...

Согласен, не то...
Вот так да:
select a, b 
  from (select a as a, ROW_NUMBER() over (order by a) as rna from @tab1) ta
   full join
       (select b as b, ROW_NUMBER() over (order by b) as rnb from @tab2) tb
   on rna=rnb 
5 сен 11, 10:23    [11226559]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить