因此,我有一张桌子:

CityID     ParamName      ParamValue
------    -----------     ----------
  1       Temperature        23
  1       Humidity           56
  2       Temperature        27
  2       Humidity           49


我想创建一个视图,它像这样:

CityID    Temperature     Humidity
------    -----------     --------
  1          23              56
  2          27              49


我的数据库引擎是MySQL。

有人可以帮我定义这样的观点吗?任何帮助将不胜感激。

最佳答案

MySQL没有PIVOT函数,因此您将需要一个CASE语句:

SELECT CityId,
    SUM(CASE WHEN ParamName = 'Temperature' THEN ParamValue END) Temperature,
    SUM(CASE WHEN ParamName = 'Humidity' THEN ParamValue END) Humidity
FROM yourTable
GROUP BY CityId


SQL Fiddle with Demo

关于mysql - 表中的列值作为 View 中的列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11800405/

10-13 06:18