`
jiaoronggui
  • 浏览: 1309106 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
B7c2eb31-a8ea-3973-a517-d00141f39b89
项目管理软件-redmin...
浏览量:115443
4a63e153-250f-30f6-a051-97cfc67cb3d3
IT职业规划
浏览量:198021
社区版块
存档分类
最新评论

oracle中使用decode进行数据的列转换为行的试验

阅读更多

 


 

如何将以下数据格式的数据转换为
初始化格式如下:
1    市政府    房产    1    2    3
2    省政府    房产    4    3    4
3    肥东    房产    5    4    5
4    肥西    房产    6    5    7
5    长风    房产    7    7    8
6    淮南    房产    8    9    5
7    市政府    汽车    1    2    3
8    省政府    汽车    4    3    4
9    肥东    汽车    5    4    5
10    肥西    汽车    6    5    7
11    长风    汽车    7    7    8
12    淮南    汽车    8    9    5
13    肥西    奢侈品    6    5    7
14    长风    奢侈品    7    7    8
15    淮南    奢侈品    8    9    5
16    市政府    贵重首饰    1    2    3
17    省政府    贵重首饰    4    3    4
18    肥东    贵重首饰    5    4    5

需要转变为

                        房产                    汽车                    奢侈品                    奢侈品        
       PRO_TYPE    场次    销售价    佣金    场次    销售价    佣金    场次    销售价    佣金    场次    销售价    佣金
1    淮南        8        9        5        8        9        5        8        9        5            
2    肥东        5        4        5        5        4        5                                5        4        5
3    市政府        1        2        3        1        2        3                                1        2        3
4    省政府        4        3        4        4        3        4                                4        3        4
5    肥西        6        5        7        6        5        7        6        5        7            
6    长风        7        7        8        7        7        8        7        7        8            


处理sql语句如下:
select pro_type,
       sum(decode(bm_tyoe, '房产', jiage1)) 房产场次,
       sum(decode(bm_tyoe, '房产', jiage2)) 房产销售价,
       sum(decode(bm_tyoe, '房产', jiage3)) 房产佣金,
       sum(decode(bm_tyoe, '汽车', jiage1)) 汽车场次,
       sum(decode(bm_tyoe, '汽车', jiage2)) 房产销售价,
       sum(decode(bm_tyoe, '汽车', jiage3)) 汽车佣金,
       sum(decode(bm_tyoe, '奢侈品', jiage1)) 奢侈品场次,
       sum(decode(bm_tyoe, '奢侈品', jiage2)) 奢侈品销售价,
       sum(decode(bm_tyoe, '奢侈品', jiage3)) 奢侈品佣金,
       sum(decode(bm_tyoe, '贵重首饰', jiage1)) 贵重首饰场次,
       sum(decode(bm_tyoe, '贵重首饰', jiage2)) 贵重首饰销售价,
       sum(decode(bm_tyoe, '贵重首饰', jiage3)) 贵重首饰佣金
  from tmp_table
 group by pro_type

 

 

prompt PL/SQL Developer import file
prompt Created on 2012年7月5日 by jiaorg
set feedback off
set define off
prompt Creating TMP_TABLE...
create table TMP_TABLE
(
  PRO_TYPE VARCHAR2(20),
  BM_TYOE  VARCHAR2(20),
  JIAGE1   NUMBER(5),
  JIAGE2   NUMBER(5),
  JIAGE3   NUMBER(5)
)
tablespace ABRES
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );

prompt Disabling triggers for TMP_TABLE...
alter table TMP_TABLE disable all triggers;
prompt Deleting TMP_TABLE...
delete from TMP_TABLE;
commit;
prompt Loading TMP_TABLE...
insert into TMP_TABLE (PRO_TYPE, BM_TYOE, JIAGE1, JIAGE2, JIAGE3)
values ('市政府', '房产', 1, 2, 3);
insert into TMP_TABLE (PRO_TYPE, BM_TYOE, JIAGE1, JIAGE2, JIAGE3)
values ('省政府', '房产', 4, 3, 4);
insert into TMP_TABLE (PRO_TYPE, BM_TYOE, JIAGE1, JIAGE2, JIAGE3)
values ('肥东', '房产', 5, 4, 5);
insert into TMP_TABLE (PRO_TYPE, BM_TYOE, JIAGE1, JIAGE2, JIAGE3)
values ('肥西', '房产', 6, 5, 7);
insert into TMP_TABLE (PRO_TYPE, BM_TYOE, JIAGE1, JIAGE2, JIAGE3)
values ('长风', '房产', 7, 7, 8);
insert into TMP_TABLE (PRO_TYPE, BM_TYOE, JIAGE1, JIAGE2, JIAGE3)
values ('淮南', '房产', 8, 9, 5);
insert into TMP_TABLE (PRO_TYPE, BM_TYOE, JIAGE1, JIAGE2, JIAGE3)
values ('市政府', '汽车', 1, 2, 3);
insert into TMP_TABLE (PRO_TYPE, BM_TYOE, JIAGE1, JIAGE2, JIAGE3)
values ('省政府', '汽车', 4, 3, 4);
insert into TMP_TABLE (PRO_TYPE, BM_TYOE, JIAGE1, JIAGE2, JIAGE3)
values ('肥东', '汽车', 5, 4, 5);
insert into TMP_TABLE (PRO_TYPE, BM_TYOE, JIAGE1, JIAGE2, JIAGE3)
values ('肥西', '汽车', 6, 5, 7);
insert into TMP_TABLE (PRO_TYPE, BM_TYOE, JIAGE1, JIAGE2, JIAGE3)
values ('长风', '汽车', 7, 7, 8);
insert into TMP_TABLE (PRO_TYPE, BM_TYOE, JIAGE1, JIAGE2, JIAGE3)
values ('淮南', '汽车', 8, 9, 5);
insert into TMP_TABLE (PRO_TYPE, BM_TYOE, JIAGE1, JIAGE2, JIAGE3)
values ('肥西', '奢侈品', 6, 5, 7);
insert into TMP_TABLE (PRO_TYPE, BM_TYOE, JIAGE1, JIAGE2, JIAGE3)
values ('长风', '奢侈品', 7, 7, 8);
insert into TMP_TABLE (PRO_TYPE, BM_TYOE, JIAGE1, JIAGE2, JIAGE3)
values ('淮南', '奢侈品', 8, 9, 5);
insert into TMP_TABLE (PRO_TYPE, BM_TYOE, JIAGE1, JIAGE2, JIAGE3)
values ('市政府', '贵重首饰', 1, 2, 3);
insert into TMP_TABLE (PRO_TYPE, BM_TYOE, JIAGE1, JIAGE2, JIAGE3)
values ('省政府', '贵重首饰', 4, 3, 4);
insert into TMP_TABLE (PRO_TYPE, BM_TYOE, JIAGE1, JIAGE2, JIAGE3)
values ('肥东', '贵重首饰', 5, 4, 5);
commit;
prompt 18 records loaded
prompt Enabling triggers for TMP_TABLE...
alter table TMP_TABLE enable all triggers;
set feedback on
set define on
prompt Done.
 
1
4
分享到:
评论

相关推荐

    Oracle中Decode()函数使用技巧

    Oracle中Decode()函数使用技巧Oracle中Decode()函数使用技巧Oracle中Decode()函数使用技巧

    Oracle中Decode()函数使用技巧.doc

    Oracle中Decode()函数使用技巧

    ORACLE 列转行 DECODE函数用法

    NULL 博文链接:https://lisanlai.iteye.com/blog/793404

    Oracle行转列

    Oracle行转列是指在Oracle数据库中将行数据转换为列数据或将列数据转换为行数据的操作。这种操作在实际应用中非常有用,例如,在数据报表、数据分析和数据挖掘等领域都需要使用行转列操作。 1. 列转行 列转行是指...

    Oracle中Decode()函数的有关用法

    Oracle中Decode()函数的有关用法Oracle中Decode()函数的有关用法

    关于oracle decode函数的用法

    关于oracle decode函数的用法

    Oracle的列转行问题

    Oracle中使用语句将行数据转换称不同的列表示,或者将不同的列数据写到同一列的不同行上的行列转换问题是一个非常传统的话题。 网络上流传了很多将行数据转换称列数据的方法和应用实例,一般通过decode或者case函数...

    oracle中decode()函数使用技巧

    oracle中decode()函数使用技巧 很有帮助的哦

    oracle_function_decode.patch

    博客:PostgreSQL的学习心得和知识总结(四十四)|语法级自上而下完美实现Oracle数据库DECODE函数的实现方案(GreenPlum & AntDB)

    oracle行列转换

    Oracle 行列转换是指将数据库表中的行转换为列或将列转换为行的一种操作。这种操作在实际应用中非常有用,例如在数据报表生成、数据分析和数据挖掘等领域。下面我们将详细介绍 Oracle 行列转换的六种情况。 一、列...

    oracle的decode函数

    DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。

    oracle中nvl、decode、trim、rtrim的常见用法

    列举oracle中nvl、decode、trim、rtrim的常见用法

    Oracle DECODE函数语法使用介绍

    Oracle DECODE函数功能很强,下面就为您详细介绍Oracle DECODE函数的用法,希望可以让您对Oracle DECODE函数有更多的了解。 Oracle DECODE函数 Oracle DECODE函数是Oracle公司独家提供的功能,它是一个功能很强的...

    Oracle-Decode()函数和CASE语句的比较

    本文讲述了Oracle-Decode()函数和CASE语句的比较。

    Oracle 中 decode 函数用法

    decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN  RETURN(翻译值1) ELSIF 条件=值2 THEN  RETURN(翻译值2)  ...... ELSIF 条件=值n THEN  RETURN(翻译值n) ...

    Oracle中DECODE()函数的使用法

    DECODE()函数,它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。区别于SQL的其它函数,DECODE函数还能识别和操作空值。本文详细介绍了DECODE函数的语法。

    oracle中decode函数的使用方法示例

    主要介绍了oracle中decode函数的使用方法示例,还是比较不错的,这里分享给大家,供需要的朋友参考。

    SQL中 decode()函数简介

    DECODE函数,是ORACLE公司的SQL软件ORACLE PL/SQL所提供的特有函数计算方式,以其简洁的运算方式,可控的数据模型和灵活的格式转换而闻名。 今天看别人的SQL时看这里面还有decode()函数,以前从来没接触到,上网...

    oracle中decode函数的使用方法

    主要介绍了oracle中decode函数的使用方法,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics