3ybHa9_Fe9
@3ybHa9_Fe9

Транспонирование таблицы SQL

столкнулся с задачей транспонирования таблицы (поворот на 90 градусов).
есть столбцы
A | B | C
1 | 2 | 3
4 | 5 | 6

вывести
A 1 4
B 2 5
C 3 6

в интернетах пишут
«my very strong advice: don't try to do this with SQL»
и пару достаточно «странных» вариантов

Что посоветуете?
  • Вопрос задан
  • 12094 просмотра
Решения вопроса 1
biduin
@biduin
Не совсем понятно, какого типа данные, но в любом случае модно достаточно просто решить с помощью Dynamic SQL.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 6
@DanXai
A | B | C
1 | 2 | 3
4 | 5 | 6

вывести
A 1 4
B 2 5
C 3 6
Ответ написан
Комментировать
@DanXai
A | B | C
1 | 2 | 3
4 | 5 | 6
поворота на 90 градусов влево:
С 3 6
B 2 5
A 1 4

вправо:
4 1 A
5 2 B
6 3 C

Транспонирование — замена столбцов строками, а не поворот!
Ответ написан
Комментировать
Horse
@Horse
Если данных не сверх много и задача одноразовая — порядок действий очень прост:
1. Считать все.
2. Транспонировать.
3. Записать все.
Ответ написан
@kmike
Интересно, откуда такая задача.

Кстати, СУБД по сути сами умеют, в каком-то смысле, таблицы транспонировать. Это называется «индекс».
Ответ написан
nZeus
@nZeus
Вряд ли это Вам поможет, но в MS-SQL'e это делается при помощи функции PIVOT. Возможно, гугл на тему «pivot in MySql» поможет
Ответ написан
Комментировать
stas_agarkov
@stas_agarkov
Я программист
когда уже тупой мускул это научиться делать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы