product表name price address
pro1 200 beijing
pro2 100 wuhan
pro3 300 tianjingpro1 100 wuhan
pro2 300 tianjing
pro3 200 beijingpro1 400 tianjing
pro3 200 wuhan查询结果name beijing.price wuhan.price tianjing.price ...
pro1 200 100 400 ...
pro2 null 100 300 ...
pro3 200 200 300 ...
pro1 200 beijing
pro2 100 wuhan
pro3 300 tianjingpro1 100 wuhan
pro2 300 tianjing
pro3 200 beijingpro1 400 tianjing
pro3 200 wuhan查询结果name beijing.price wuhan.price tianjing.price ...
pro1 200 100 400 ...
pro2 null 100 300 ...
pro3 200 200 300 ...
有多少个城市就加多少个类似的SUM(DECODE(ADDRESS, 'beijing', PRICE)) BEIJING;
SELECT NAME,
SUM(DECODE(ADDRESS, 'beijing', PRICE)) BEIJING,
SUM(DECODE(ADDRESS, 'wuhan', PRICE)) WUHAN,
SUM(DECODE(ADDRESS, 'tianjing', PRICE)) TIANJING
FROM PRODUCT
GROUP BY NAME;
From
(
Select name,
Case address when 'beijing' then price end as beijing,
Case address when 'wuhan' then price end as wuhan,
Case address when 'tianjing' then price end as tianjing
from test1
)B Group by nameName beijing wuhan tianjing
-------------------- ----------- ----------- -----------
pro1 200 100 400
pro2 NULL 100 300
pro3 200 200 300(所影响的行数为 3 行)
数据多用存储过程拼sql.