Отображение результатов из одного столбца в два столбца - PullRequest
0 голосов
/ 04 августа 2020

Выбор участников из таблицы приведет к

Participants
-------
John
Nancy
Jem
Albert
Smith
Daniella

Мне нужен запрос, в котором отображаются результаты

Player   Opponent
------   --------
John      Nancy
Jem       Albert
Smith     Daniella

Хорошим примером для этого вопроса является запрос, используемый для генерации одиночных пары на выбывание.

Ответы [ 3 ]

1 голос
/ 05 августа 2020

Большое спасибо Ольге и Гордону за ваш вклад. Я нашел ответ Ольги более близким к тому, что мне нужно.

Еще раз спасибо всем

1 голос
/ 04 августа 2020

Вы можете использовать row_number() и агрегирование:

select min(player) as player, max(player) as opponent
from (select t.*, row_number() over (order by player) as seqnum
      from t
     ) t
group by floor( (seqnum - 1) / 2)
0 голосов
/ 04 августа 2020

Вы можете использовать функцию окна ios. Просто LEAD + ROW_NUMBER, чтобы получить противника, а затем получить игрока с нечетными числами

  SELECT player,Opponent FROM
 (
   SELECT player, Number, LEAD(player)OVER(ORDER BY Number)Opponent from
    (
       SELECT player, ROW_NUMBER()OVER (ORDER BY player)Number FROM Table
    )X
 )Y
   WHERE Number % 2 <> 0 
...