Вставить каждую комбинацию уникальных значений без зацикливания - PullRequest
0 голосов
/ 27 марта 2019

Имеется 3 значения, например,

+--------+
| values |
+--------+
|    1   |
+--------+
|    2   |
+--------+
|    3   |
+--------+

Можно ли вставить каждую уникальную комбинацию каждого значения в таблицу без использования цикла WHILE?

Например, конечный результатбудет выглядеть так:

enter image description here

Это относительно просто сделать с помощью вложенных циклов WHILE, но я хотел бы знать, есть лидругие подходы, которые могут быть использованы.

1 Ответ

0 голосов
/ 27 марта 2019
declare @t table
(
  n int not null
);

insert into @t (n)
values
(1),
(2),
(3);

select * from @t;

select
value1 = t1.n,
value2 = t2.n,
value3 = t3.n
from @t t1
inner join @t t2 on t1.n <> t2.n
inner join @t t3 on t1.n <> t3.n and t2.n <> t3.n; 

enter image description here

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