Oracle与SQL-Server数据库SQL"树查询"对比[按照父子节点关系递归拼接]
2016-05-04 23:55
513 查看
说明:将多行(包含父子关系)树状查询结果符合条件的父子关系记录按照符号进行等级层次拼接组成每行结果;其中包含两种SQLServer和Oracle数据库的查询方式,仅供参考,目前正在学习中,当中有语法不规范处请勿对号入座。
1. 【SQLServer】"树查询"拼接语句如下:
2. 【Oracle】"树查询"拼接语句如下:
1. 【SQLServer】"树查询"拼接语句如下:
With SubQuery (upmaterialnumber,qty,subPartNo,SumDrawingNumber) AS (Select R.upmaterialnumber, R.qty, R.materialnumber as subPartNo, C.SumDrawingNumber as SumDrawingNumber From ERP_D_MeterialRelation R,ERP_D_BillOfMaterial C Where R.materialnumber = '6A100045' And R.materialnumber = C.number Union All Select A1.upmaterialnumber, A1.qty,A1.subPartNo, B1.SumDrawingNumber From ERP_D_BillOfMaterial B1, (Select A.upmaterialnumber, A.qty, A.materialnumber as subPartNo From ERP_D_MeterialRelation A Left Join SubQuery B ON A.upmaterialnumber = B.subPartNo) A1 Where A1.subPartNo = B1.Number) Select * From SubQuery
2. 【Oracle】"树查询"拼接语句如下:
Select c.roleName as roleName, c.menuName as menuName, convert(varchar(5000),c.funName) as funName From ( Select roleName, (Select name as menuName From t_scl_func where code = supCode) as menuName, funName = (stuff(( Select ',' b.funname From ( Select r.name as rolename, m.name as funname, m.code as code, m.parent as supCode From t_scl_role r, t_scl_role_func f, t_scl_func m Where r.id = f.role_id And f.func_code = m.code ) b Where b.rolename = a.rolename And b.supCode = a.supCode for xml path('')),1,1,'')) From ( Select r.name as rolename, m.name as funname, m.code as code, m.parent as supCode From t_scl_role r, t_scl_role_func f, t_scl_func m Where r.id = f.role_id And f.func_code = m.code ) a Group by rolename,supCode) c Where c.funname is Not Null Order by c.roleName;
相关文章推荐
- Oracle完全卸载详细步骤
- oracle 数据库-查询
- Navicat for Oracle实现连接Oracle
- Oracle VM + centos7.1+openstack kilo 多结点安装教程---neutron的安装(1)
- Oracle 11g RAC到单实例ASM的物理Standby搭建
- Oracle 故障处理总结
- 搭建ORACLE高可用 高性能 高扩展的 MMM_APE 架构
- Oracle Crystal ball 11.1.* 注册码
- oracle业务中经常用到的方便函数
- centOS6.6-64 oracle11g
- oracle驱动表被驱动表
- Oracle 唯一化排序分页查询只显示第一页
- SSM框架——项目详细搭建(Spring+SpringMVC+MyBatis + oracle)
- 从oracle官网wget jdk
- java连接oracle数据库简单实例
- java读取Excel数据,然后写入到txt文件,并批量保存到oracle数据库中
- SYBASE & ORACLE自增主键
- java批量插入数据到Oracle
- oracle 截取字符(substr),检索字符位置(instr)
- oracle数据表结构和存储过程导出为word文档