想要实现如下结果说明如下:

以id1,id2过滤前提,根据kind把数据进行处理,

当kind=1时,name2,age2置空

当kind=2时,name1,age1置空

说明:数据的id1,id2相同时(不是id1=id2,是id1=id1,id2=id2),kind=1的条数和kind=2的条数可能不一样多。

合并为kind=1或kind=2中的最大行数即可。

谢谢各位。

增加sql如下:

create table test (id1 number,id2 number, kind number,  name1 varchar2(10),age1 varchar2(10), name2 varchar2(10),age2 varchar2(10));

INSERT INTO TEST VALUES (1,    1,   1,        'a','10',NULL,NULL);

INSERT INTO TEST VALUES (1,    1,   2,        NULL,NULL,'d','20');

INSERT INTO TEST VALUES (1,    1,   1,        'e','30',NULL,NULL);

INSERT INTO TEST VALUES (1,    2,   1,        'g','40',NULL,NULL);

INSERT INTO TEST VALUES (1,    2,   2,        NULL,NULL,'j','50');

INSERT INTO TEST VALUES (1,    2,   2,        NULL,NULL,'m','60');

INSERT INTO TEST VALUES (1,    2,   3,        'n','70','p','80');--注意kind=3的也存在

期望值:

id1   id2   name1  age1   name2   age2

1      1       a           10       null         null --kind=1

1      1       e           30       null         null --kind=1

1      1       null        null       d         20    --kind=2

1      2       g           40       null         null --kind=1

1      2       null       null         j          50   --kind=2

1      2       null        null        m         60  --kind=2

期望值和原值是不完全一样的。

我对要求简单的描述一下:

原始数据每条数据都有一个区分(1/2/3),一般id1,id2相同时,应该有3条对应数据(区分=1/2/3),也可能缺少某个区分的数据。

当区分=1时,有n多类似name1的字段有对应数据

当区分=2时,有n多类似name2的字段有对应数据

当区分=3时,是id1,id2相同时,区分=1,区分=2的合计数据

我要出报表,所以要把id1,id2相同的为单位做小计,区分=1,区分=2的数据由原始的横向数据,变为纵向数据。

比如:区分=1的数据有5条,区分=2的数据有3条,那么横向8条变为纵向5条,区分=1,区分=2的数据在同一条数据上显示,同时补空。

区分=1的数据有2条,区分=2的数据有4条,那么横向6条变为纵向4条,区分=1,区分=2的数据在同一条数据上显示,同时补空。

不知道描述清楚没有。

欢迎并感谢高手解答!!!

[本帖最后由 tsingse 于 2009-9-16 10:35 编辑]

oracle数据库纵向转横向,复杂SQL语句实现表中数据横向变纵向问题求解相关推荐

  1. SQL语句将表中数据导入到另一个数据库表中

    insert into database1.dbo.table1(字段1,字段2,...) select 字段1,字段2,... from database2.dbo.table2 转载于:https ...

  2. oracle 不能导入sql语句,oracle数据库导入.dmp脚本的sql 语句

    一.更改数据库管理员sys/system密码 1.运行到C盘根目录 2.输入:SET ORACLE_SID = 你的SID名称 3.输入:sqlplus /nolog 4.输入:connect /as ...

  3. sql server根据表中数据生成insert语句

    sql server根据表中数据生成insert语句 -- ====================================================== --根据表中数据生成inser ...

  4. 用一条sql语句删除表中所相同记录

    用一条sql语句删除表中所相同记录如下一.具有主键的情况 a.具有唯一性的字段id(为唯一主键) delete table where id not in ( select max(id) from ...

  5. 用MS SQL 语句修改表中字段类型

    [问题]用SQL 语句判断表中是否存在password字段,不存在则新增字段,若存在password字段,把字段的类型由int 类型改为text类型. [实现方法] if exists( select ...

  6. 【SQL】 使用SQL语句在表中添加数据(一条 / 多条)

    [SQL] 使用SQL语句在表中添加数据(一条 / 多条) 1.单条数据 insert into 表名(字段名1,字段名2)value(值1,值2); 例如: insert into tablenam ...

  7. cockroachdb mysql_CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储...

    CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...

  8. oracle数据库查询open_cursors值的sql语句,达梦数据库查询MAX_SESSION_STATEMENT值方法,MAX_SESSION_STATEMENT的最大值、上限是多少

    windows 下需要用 cmd 登录 oracle 数据库,用 show parameter open_cursors 来查询. 可以看到 open_cursors 的值为 2000. SQL> ...

  9. 使用SQL语句在表中插入date类型的数据

    如果想使用SQL语句在数据库的表中插入一个date类型的数据,可以使用 insert into user values (null, '小红', 1234, 24, '男', 20200808); 注 ...

最新文章

  1. 区块链来了|未来注定将颠覆我们的生活,你值得先看看
  2. Apache主配置文件httpd.conf 详解
  3. 【C 语言】指针数据类型 ( 野指针 | 避免野指针推荐方案 )
  4. 华为手机日历倒计时_倒计时40小时!谁来拿走这台华为手机?
  5. 惠新宸php教程_惠新宸:首位国人加入PHP语言官方开发组
  6. JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结(转)
  7. ESXI开启SNMP服务
  8. [非技术参考]C#重写ToString方法
  9. 在运行时切换 WinForm 程序的界面语言 System.ComponentModel.ComponentResourceManager .ApplyResources...
  10. Silverlight使用RSA加密socket tcp通讯数据
  11. 3、redis之java client环境搭建
  12. [转]ASP.NET MVC IOC 之AutoFac攻略
  13. 怎么才能获取NTFS for mac注册码呢?
  14. 让你不差钱的9款开源网管工具
  15. Sketch 52 破解版 最佳Mac产品原型设计工具
  16. python 战棋游戏代码实现(1):生物行走和攻击选择
  17. 计算机中信息的表示方法 教案,计算机中的数的表示教案
  18. SQL SERVER 2008 R2的累计补丁下载地址
  19. Percona-toolkit的安装和配置-杨建荣的学习笔记
  20. 如何恢复计算机手机桌面图标,桌面图标不见了怎如何恢复

热门文章

  1. 苹果主题商店_小米怕被苹果找茬,开始下架相关IOS主题了!
  2. 初学乍练redis:Redis 5 Cluster手工指定主从关系
  3. 利用pandas将Excel分组比较获取差集并
  4. QQ用户的帐号和密码安全
  5. rgret白鹭 开发html游戏,白鹭推HTML5首款生态产品Egret Runtime
  6. Nexus搭建Maven私服并使用私服
  7. win10禁止访问某网站
  8. 汽车功能安全标准ISO 26262导入实践(下)
  9. 近期基金有所上涨,你的基金回本了吗?如果回本了,你还会继续持仓吗?
  10. linux下执行gauss的脚本文件,求脚本:同时向n个nodes提交并执行当前目录下所有Gaussian输入文件...