Сведения о вопросе

Electro Full

02:46, 23rd August, 2020

Теги

MySQL    

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

Просмотров: 732   Ответов: 7

столкнулся с задачей транспонирования таблицы (поворот на 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»
и пару достаточно «странных» вариантов

Что посоветуете?



  Сведения об ответе

crush

14:49, 16th August, 2020

Не совсем понятно, какого типа данные, но в любом случае модно достаточно просто решить с помощью Dynamic SQL.


  Сведения об ответе

ITSME

06:54, 20th August, 2020

A | B | C
1 | 2 | 3
4 | 5 | 6

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


  Сведения об ответе

dump

19:48, 1st August, 2020

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

Транспонирование — замена столбцов строками, а не поворот!


  Сведения об ответе

ITSME

22:50, 3rd August, 2020

Если данных не сверх много и задача одноразовая — порядок действий очень прост:
1. Считать все.
2. Транспонировать.
3. Записать все.


  Сведения об ответе

P_S_S

21:57, 4th August, 2020

Интересно, откуда такая задача.

Кстати, СУБД по сути сами умеют, в каком-то смысле, таблицы транспонировать. Это называется «индекс».


  Сведения об ответе

nYU

11:22, 19th August, 2020

Вряд ли это Вам поможет, но в MS-SQL'e это делается при помощи функции PIVOT. Возможно, гугл на тему «pivot in MySql» поможет


  Сведения об ответе

DINO

10:48, 27th August, 2020

когда уже тупой мускул это научиться делать


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться