2011-01-16 2 views
1

Я нашел много вопросов, чтобы сделать это другим способом, но я не могу решить его таким образом.MySQL pivot single row

Допустим, я выбираю одну строку из таблицы, так что я следующее:

A | B | C | D | E 
------------------ 
1| 2 | 3 | 4 | 5 

Как я могу повернуть его в MySQL, чтобы создать что-то вроде:

r | c 
----- 
A | 1 
----- 
B | 2 
----- 
C | 3 
----- 
D | 4 
----- 
E | 5 

который я тогда планирую присоединитесь к другой таблице.

Это можно сделать? Как? Я не могу придумать никаких способов, и я не могу найти ответ на google.

спасибо.

+0

Таким образом, вы в основном хотите создать сводную таблицу? –

ответ

1

Если имена столбцов являются фиксированными, вы можете использовать этот

(образец таблицы)

create table so_tmp(a int, b int, c int, d int, e int); 
insert into so_tmp select 1,2,3,4,5; 

выбрать, B, C, D, E от so_tmp;

UNPIVOT запрос:

select 'a' r, a c from so_tmp 
union all 
select 'b', b from so_tmp 
union all 
select 'c', c from so_tmp 
union all 
select 'd', d from so_tmp 
union all 
select 'e', e from so_tmp;