Транспонирование столбцов 2 на 2 в sql

#sql #sql-server

Вопрос:

У меня есть таблица, в которой я хочу перенести столбец после n-го столбца. Транспонирование должно быть на 2 столбца.

Например, строка 1 должна быть идентификатором ,именем n 1-го столбца, именем n 2-го столбца , значением n 1-го столбца, значением n 2-го столбца

Строка 2 должна быть идентификатором ,именем n 3-го столбца, именем n 4-го столбца , значением n 3-го столбца, значением n 4-го столбца

Примерные Данные :

Моя таблица импорта выглядит так :

Идентификатор игрока Группа 1 Команда 2 Команда 3 Команда 4
Игрок_1 1 0 0 0
Игрок 2 1 3 2 0

Команда 1 в/с Команда 2 Команда 3 в/с Команда 4

Мой результат был бы таким

Идентификатор игрока Команды 1 Команды 2 Оценка 1 Оценка 2
Игрок_1 Группа 1 Команда 2 1 0
Игрок_1 Команда 3 Команда 4 0 0
Игрок 2 Группа 1 Команда 2 1 3
Игрок 2 Команда 3 Команда 4 2 0

Комментарии:

1. Пожалуйста, добавьте примеры данных к вашему вопросу.

2. @TimBiegeleisen Я добавил образец

3. @a_horse_with_no_name Извините за то, что я использую Microsoft Sql Server

4. @tashilmoorateah . . . У вас настоящая проблема, если вы не знаете, какие столбцы находятся в ваших таблицах. Эти данные уже должны храниться в формате, в который вы хотите их преобразовать.

5. @ГордонЛинофф. Таблица удаляется и создается в файле в соответствии с требованиями системы, которую я создаю

Ответ №1:

Мы можем попробовать использовать здесь подход объединения:

 SELECT PlayerID, 'Team 1' AS "Teams 1", 'Team 2' AS "Teams 2",
       Team1 AS "Score 1", Team2 AS "Score 2" FROM yourTable
UNION ALL
SELECT PlayerID, 'Team 3', 'Team 4', Team3, Team4 FROM yourTable
ORDER BY PlayerID, "Teams 1";
 

Комментарии:

1. На самом деле количество следующих команд неизвестно. Так что у меня есть 2n команд

2. @Tashilmoorateah, четко упомяни о своей проблеме. В противном случае, время тратится впустую для других, чтобы переработать проблему.

3. @tashilmoorateah Если количество команд действительно неизвестно, то вам может потребоваться динамический SQL для создания нужного запроса.

4. @VenkataramanR Я объяснил это в начале темы , я просто привел пример ниже. Я постараюсь быть более ясным. Спасибо

5. @tashilmooratea, прости. Я увидел примеры ввода и вывода и запутался. Теперь я лучше понимаю проблему.