将单个列拆分为多个列

时间:2016-10-10 19:35:27

标签: mysql

我目前正在努力查询项目管理软件(这是一个学校项目)。

我有以下表格:

 projectID     |    cID          |    value
---------------|-------------------------
1              |     3           |     321
1              |     4           |     442
2              |     3           |     999
2              |     4           |     799

最终产品应如下所示:

      c1       |     c2
---------------|-----------------
      321      |     442
      999      |     799

现在,问题在于可能存在无限数量的c1,c2等以及无数个项目。所以表格会变得很大(两个方向)。

有没有办法让列声明“本身”?如果没有,让我说我将c1,c2,...的数量限制为5,我该怎么办?我试过像:

select v1.value, v2.value from value v1, value v2

1 个答案:

答案 0 :(得分:0)

我相信使用条件聚合可以获得您的转轴结果:

select
  max(case when cid = 3 then value end) as c1,
  max(case when cid = 4 then value end) as c2,
  ...
from yourtable
group by projectid

是的,有一种方法可以通过字符串操作和连接在MySQL过程中构建动态语句,然后使用EXECUTE执行它。