Member 13654932 Ответов: 1

Как мне...перенести таблицу столбцов в строку vice в mysql


У меня есть такой стол, как:

Brand     Price   Colour  Size
addidas   500     Black    7
Nike      400     Blue     8
Reebok    200     Red      9


Мне нужно транспонировать его так:

AttributeName    AttributeValue

Brand                addidas
Price                 500
Colour                Black
Size                   7
Brand                 Nike
Price                 400
Colour                Blue
Size                   8
Brand                 Reebok
Price                  200        
Colour                 Red
Size                    9


Что я уже пробовал:

Ни один источник до сих пор не найден найдено только транспонирование в строку в столбец вице решения

1 Ответов

Рейтинг:
1

Animesh Datta

Привет,
Согласно вашему требованию я делаю ниже Решение.Хотя это не очень хороший подход.

//Create Table
CREATE TABLE a
(
  id int,
  brand varchar(20) ,
  price int,
  color varchar(20),
  size int
) ;

//Insert rows into table
INSERT INTO a (id,brand,price,color,size)
VALUES 
(1,'addidas', 500 ,'Black', 7),
(2,'Nike', 400 ,'Blue' ,8),
(3,'Reebok', 200 ,'Red' ,6) ;


Запрос для получения требуемого вывода таков
select  AttributeName,AttributeValue from 
(select a.id,1 as 'colid','brand' as 'AttributeName', brand as 'AttributeValue' from a
union 
select a.id,2 as 'colid','price' , price from a
union
select a.id,3 as 'colid','color',color from a
union 
select a.id ,4 as 'colid','size',size from a
)x order by x.id,x.colid

Здесь переменная colid используется для получения значения атрибута в требуемом порядке.
Out put доступен в Эта ссылка
Спасибо