创建mysql的列和行

时间:2014-10-20 03:31:49

标签: mysql sql arrays

我有这样的表格数据

index  user  date   rank
  11     a    1Mar    23
  12     b    1Mar    16
  13     a    2Mar    24
  14     b    2Mar    18

我想通过查询实现的是:

    1Mar   2Mar
a   23     24
b   16     18 

我不知道这是否可以通过命令行中的单个语句完成,或者是否必须通过表单和脚本来完成。我可以做脚本编写,但无法在单个语句中看到如何操作。

1 个答案:

答案 0 :(得分:1)

如果你知道日期的所有可能值,你可以像下面那样进行调整 或者你需要使用动态sql。

SELECT user,
       MAX( CASE WHEN date ='1Mar' THEN rank else NULL end) AS '1Mar',
       MAX( CASE WHEN date ='2Mar' THEN rank else NULL end) AS '2Mar'
FROM Table1
GROUP BY user