sql语句,某一行数据变为列名
我有一个表
日期 合肥 F3 F4 芜湖 F6 F7
--------------------------------------------------------------------
NULL 气象 最高 最低 气象 最高 最低
2013-10 多云 32 20 雨 35 20
2013-11 晴 30 20 晴 25 20
现在要变为:
日期 城市 气象 最高 最低
--------------------------------------------------------------
2013-10 合肥 多云 32 20
2013-10 芜湖 雨 35 20
2013-11 合肥 晴 30 20
2013-11 芜湖 晴 25 20
可以的话尽量写成动态,因为不只两个城市
[解决办法]
select 日期,'合肥' as 城市,合肥 as 气象,F3 as 最高,F4 as 最低
from tb
where 日期 is not null
union all
select 日期,'芜湖' as 城市,芜湖 as 气象,F6 as 最高,F7 as 最低
from tb
where 日期 is not null
[解决办法]
这个是动态生成的语句:
select 日期,'合肥' as 城市,合肥 as 气象,F3 as 最高,F4 as 最低
from tb where 日期 is not null
union all
select 日期,'芜湖' as 城市,芜湖 as 气象,F6 as 最高,F7 as 最低
from tb where 日期 is not null
union all
select 日期,'北京' as 城市,北京 as 气象,F9 as 最高,F10 as 最低
from tb where 日期 is not null
union all
select 日期,'福州' as 城市,福州 as 气象,F12 as 最高,F13 as 最低
from tb where 日期 is not null