`
furuitao
  • 浏览: 33419 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

DB2 ORACLE 递归查询 行转列

    博客分类:
  • SQL
 
阅读更多
ORACLE
递归查询:
select parent_inst_id, inst_id
  from uprr.u_base_inst
 start with inst_id = '222000000000'
connect by prior inst_id = parent_inst_id;

行转列:
select user_id, wmsys.wm_concat(organ_id)
  from v_organ_user_info
 group by user_id;

DB2
递归查询:
WITH t(pid, id) AS(
  SELECT parent_inst_id, inst_id
    FROM uprr.u_base_inst
   WHERE inst_id = '222000000000'
  UNION ALL
  SELECT c.parent_inst_id, c.inst_id
    FROM t p, uprr.u_base_inst c
   WHERE p.id = c.parent_inst_id)

  SELECT * FROM t

行转列
WITH t1(u,o,num) AS (
    SELECT user_id,organ_id,row_number() over(PARTITION BY user_id ORDER BY organ_id) FROM V_ORGAN_USER_INFO
),
t2(au,ao,anum) AS (
    SELECT u,o,num FROM t1 WHERE num=1
    UNION ALL
    SELECT t1.u,t2.ao||','||t1.o,t1.num FROM t1,t2 
    WHERE t1.num=t2.anum+1 AND t1.u=t2.au AND t1.num <3)

SELECT au,ao FROM t2
WHERE aNUM = (SELECT max(anum) FROM t2 temp WHERE temp.au=t2.au)
ORDER BY t2.au;


其中DB2在行转列的时候,如果字段长度不够长,将会报22001错误
分享到:
评论

相关推荐

    在db2和oracle中的对树的递归查询语句

    NULL 博文链接:https://flysky7931.iteye.com/blog/706171

    DB2递归实现

    实现ORACLE 的CONNECT by。可以实现一些难以在db2上实现的递归操作

    db2-技术经验总结

    1.6. DB2实现类型ORACLE的一些功能 29 1.7. 字符数据类型转换的时候需要注意的问题(原) 30 1.8. 本地谓词的使用注意(原) 31 1.9. windows/Linux或Unix下查看DB2端口号 31 1.10. 尽量让fetch first n row only或者...

    程序员的SQL金典6-8

     11.9.3 My SQL Server和DB2中递归查询 附录A 常用数据库系统的安装和使用  A.1 DB2的安装和使用  A.2 MySQL的安装和使用  A.3 Oracle的安装和使用  A.4 Microsoft SQL Server的安装和使用 显示部分信息

    程序员的SQL金典7-8

     11.9.3 My SQL Server和DB2中递归查询 附录A 常用数据库系统的安装和使用  A.1 DB2的安装和使用  A.2 MySQL的安装和使用  A.3 Oracle的安装和使用  A.4 Microsoft SQL Server的安装和使用 显示部分信息

    程序员的SQL金典3-8

     11.9.3 My SQL Server和DB2中递归查询 附录A 常用数据库系统的安装和使用  A.1 DB2的安装和使用  A.2 MySQL的安装和使用  A.3 Oracle的安装和使用  A.4 Microsoft SQL Server的安装和使用 显示部分信息

    程序员的SQL金典4-8

     11.9.3 My SQL Server和DB2中递归查询 附录A 常用数据库系统的安装和使用  A.1 DB2的安装和使用  A.2 MySQL的安装和使用  A.3 Oracle的安装和使用  A.4 Microsoft SQL Server的安装和使用 显示部分信息

    程序员的SQL金典.rar

     11.9.3 My SQL Server和DB2中递归查询 附录A 常用数据库系统的安装和使用  A.1 DB2的安装和使用  A.2 MySQL的安装和使用  A.3 Oracle的安装和使用  A.4 Microsoft SQL Server的安装和使用

    使用BULK COLLECT, MERGE 语句提高sql执行效率

    详细介绍了使用 BULK COLLECT 进行批量操作 提高sql的执行效率 使用MERGE INTO USING 一条sql搞定 新增和修改 使用connect by 进行递归树查询

    sql2005教程

    (转)使用公用表表达式的递归查询(SQLSERVER2005) 2005Beta2概览 sql server 2005 建立链接服务器 SQL Server 2005:数据类型最大值 SQL Server 2005:向系统表说再见 SQL Server 2005:这个螃蟹谁先吃 SQL ...

Global site tag (gtag.js) - Google Analytics