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

Откуда:
Сообщений: 53
Уважаемые форумчане, здравствуйте!
Есть две выборки, одинаковые по числу строк. В одной выборке данные (без ключа), в другой - единственный столбец с PK.
Требуется в выборку с данными перенести ключ, всё равно, в каком порядке и каким способом.
Я хочу как можно более просто соединить выборки.
Пока на ум пришло не очень изящное решение:

declare @a table(a int);
insert into @a(a) values(20);insert into @a(a) values(30);insert into @a(a) values(40);

declare @b table(b int);
insert into @b(b) values(1);insert into @b(b) values(2);insert into @b(b) values(3)

;with
aa(id,a) as (Select row_number() over (order by a) as id, a from @a),
bb(id,b) as (Select row_number() over (order by b) as id, b from @b)
Select aa.a, bb.b from aa inner join bb on aa.id = bb.id


Можете предложить варианты?
1 авг 17, 09:33    [20690242]     Ответить | Цитировать Сообщить модератору
 Re: Соединение двух выборок 1:1 без ключа  [new]
Serп
Member

Откуда:
Сообщений: 17
Browny,
Пронумеровать строки в обеих выборках и джойнить по номеру строки?
1 авг 17, 17:09    [20692491]     Ответить | Цитировать Сообщить модератору
 Re: Соединение двух выборок 1:1 без ключа  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4200
Serп
Browny,
Пронумеровать строки в обеих выборках и джойнить по номеру строки?

Так ТС тоже и делает собственно.
1 авг 17, 17:18    [20692515]     Ответить | Цитировать Сообщить модератору
 Re: Соединение двух выборок 1:1 без ключа  [new]
ATI.HeNRy
Member

Откуда:
Сообщений: 23
Browny
всё равно, в каком порядке и каким способом.

Тогда зачем тратите время на сортировку.

Browny
Пока на ум пришло не очень изящное решение:

Нормальное решение, бывает и не так выкручиваться приходиться.
2 авг 17, 13:40    [20694855]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить