Mysql 表中的列值作为视图中的列

Mysql 表中的列值作为视图中的列,mysql,pivot,views,Mysql,Pivot,Views,我有一张这样的桌子: CityID ParamName ParamValue ------ ----------- ---------- 1 Temperature 23 1 Humidity 56 2 Temperature 27 2 Humidity 49 我想创建一个视图,如下所示: CityID Tempera

我有一张这样的桌子:

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
请参见类似的内容

select someTable.CityID,temps.ParamValue as Temperature,Hums.ParamValue as Humidity
From SomeTable
inner join someTable temps 
On someTable.CityID = temps.CityID and temps.ParamName = 'Temperature'
inner join SomeTable hums  
On someTable.CityID = hums.CityID and hums.ParamName = 'Humidity'