1

有没有办法像这样检索数据(第一行是列标题):

data   no    answer
data1  1     X1
data1  2     X2
data1  3     X3
data1  5     X5
data2  1     Y1
data2  2     Y2
data2  4     Y4

像这样的格式(同样,第一行是列标题):

data   no1   no2   no3   no4   no5
data1  X1    X2    X3    null  X5
data2  Y1    Y2    null  Y4    null

使用 SQL 查询(在 MySQL 中)?

4

1 回答 1

1

不幸的是,MySQL 没有 PIVOT 功能。因此,您将不得不以另一种方式执行此操作。

使用CASE语句:

select data,
  MIN(CASE WHEN no = 1 THEN answer END) as no1,
  MIN(CASE WHEN no = 2 THEN answer END) as no2,
  MIN(CASE WHEN no = 3 THEN answer END) as no3,
  MIN(CASE WHEN no = 4 THEN answer END) as no4,
  MIN(CASE WHEN no = 5 THEN answer END) as no5
from test
group by data

请参阅带有演示的 SQL Fiddle

于 2012-08-01T01:11:00.387 回答