大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
oracle下可以用函数decode处理:
在纳溪等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计、做网站 网站设计制作按需搭建网站,公司网站建设,企业网站建设,高端网站设计,营销型网站建设,成都外贸网站建设公司,纳溪网站建设费用合理。
select 产品名称,
sum(decode(季度,'第一季度',销售额,0)) 第一季度销售额,
sum(decode(季度,'第二季度',销售额,0)) 第二季度销售额,
sum(decode(季度,'第三季度',销售额,0)) 第三季度销售额,
sum(decode(季度,'第四季度',销售额,0)) 第四季度销售额,
from 表名
group by 产品名称;
你所谓的行列转换应该是指纵表转横表,横表转纵表.
给你个例子
纵表转横表:
使用DECODE语句,可以很方便的将纵表转为横表,例子如下:
原表查询结果:
ID MAJOR CURRENT_CREDITS
------ ---------------- ---------------
10000 Computer Science 98
10000 History 88
10001 Computer Science 75
10000 Economics 66
我们要把各科成绩从同一列转到不同的列中去。
SQL?select id,
sum(decode(major,’Computer Science’,current_credits,0)) cs,
sum(decode(major,’History’,current_credits,0)) his,
sum(decode(major,’Economics’,current_credits,0)) eco
from students
group by id
ID CS HIS ECO
------ ----------- ------------- -----
10000 98 88 66
10001 75
横表转纵表:
使用 UNION 即可实现将横表转为纵表,以上面的表为例:
转换前:
ID CS HIS ECO
------ ----------- ------------- -----
10000 98 88 66
SQL?select id, ’Computer Science’ major,cs current_credits
from students
union
select id, ’History’ major,his current_credits
from students
union
select id, ’Economics’ major,eco current_credits
from students
ID MAJOR CURRENT_CREDITS
------ ---------------- ---------------
10000 Computer Science 98
10000 History 88
10000 Economics 66
需要oracle
8i以上的版本,可以实现类似sql
server的返回结果集(就是table)的函数。
需要参考的oracle资料:
索引表,table函数,
pipelined。依次去网上搜索,会得到你要的答案。
如果再不行,我可以给你sample。
推荐用WM_CONCAT函数
SELECT A.STD, WM_CONCAT(A.F3) NEW_RESUL
FROM (SELECT STD, F3
FROM (SELECT STD, F1 F3
FROM TABLE_A
UNION ALL
SELECT STD, F2 F3 FROM TABLE_A) A) A
GROUP BY A.STD