mysql将列转换为行

时间:2012-06-05 07:55:32

标签: mysql

我有一个从多个表视图结构创建的视图

id     col1     col2     col3     col4

101     A     B     B     NULL

102     C     F     A     G

等等(这是样本)

我想创建另一个看起来像

的视图
ID     col_name     value

101     col1     A

101     col2     B

101     col3     B

101     col4     NULL

102     col1     C

102     col2     F

102     col3     A

102     col4     G

等等

任何人都可以帮助plzzz

2 个答案:

答案 0 :(得分:6)

也许是这样的:

SELECT id,'col1' AS colName, col1 AS value FROM table1
UNION ALL
SELECT id,'col2' AS colName, col2 AS value FROM table1
UNION ALL
SELECT id,'col3' AS colName, col3 AS value FROM table1
UNION ALL
SELECT id,'col4' AS colName, col4 AS value FROM table1

答案 1 :(得分:0)

CREATE VIEW foo
AS
SELECT id, 'col1' AS col_name, col1 as `Value`
UNION ALL
SELECT id, 'col2', col2
UNION ALL
SELECT id, 'col3', col3
UNION ALL
SELECT id, 'col4', col4;