`
mikey.tsu
  • 浏览: 133826 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类

oracle中的connect by 在sql server中实现

阅读更多
1。Oracle中:
select org_id
from organizations
start with org_id= :org_id
connect by prior org_id=supervision_org_id
order by supervision_org_id

2。Sql Functiong:
 FunctionNo SubFunctionNo SubFunctionType  
  01.   systemadmin Privilege 0  
  01.   systemadmin subsysadmin 1(表示树枝)  
  subsysadmin subsys1 0(表示leaf)  
  subsysadmin subsys2 0  
  subsysadmin User 1  
  User UserOne 0  
   
  請教實現此層次結構輸出的函數(在oracle中可以使用connect   by實現此功能)  

3。sql语句实现:
举例:  
   
  declare   @a   table   (TC_Id   int,TC_PID   int,TC_Name   varchar(200))  
  insert   @a   values(1,0,'中国')  
  insert   @a   values(2,0,'美国')  
  insert   @a   values(3,0,'加拿大')  
  insert   @a   values(4,1,'北京')  
  insert   @a   values(5,1,'上海')  
  insert   @a   values(6,1,'江苏')  
  insert   @a   values(7,6,'苏州')  
  insert   @a   values(8,7,'常熟')  
  insert   @a   values(9,6,'南京')  
  insert   @a   values(10,6,'无锡')  
  insert   @a   values(11,2,'纽约')  
  insert   @a   values(12,2,'旧金山')  
   
  declare   @tmp1   table   (TC_Id   int,TC_PID   int,TC_Name   varchar(200),lev   int)  
  insert   @tmp1   select   *,1   from   @a   where   tc_ID=1  
  while   exists(select   1   from   @a   a,@tmp1   b   where   a.tc_pid=b.tc_ID   and   a.tc_ID   not   in   (select   tc_ID   from   @tmp1))  
      insert   @tmp1   select   a.*,1   from     @a   a,@tmp1   b   where   a.tc_pid=b.tc_ID   and   a.tc_ID   not   in   (select   tc_ID   from   @tmp1)  
  select   *   from   @tmp1
  
 

select max(tjr_dj) from userinfo
select * from userinfo where tjr_dj = 7
select * from userinfo where tjr_id = 81
 
declare @tmp1 table (user_id int, tjr_id int, tjr_dj int, user_name varchar(64))  
insert @tmp1 select user_id, tjr_id, tjr_dj, user_name from userinfo where user_id = 81  
  while exists(select 1 from userinfo a, @tmp1 b where a.tjr_id = b.user_id and a.user_id not in (select user_id from @tmp1))  
      insert @tmp1 select a.user_id, a.tjr_id, a.tjr_dj, a.user_name  from userinfo a, @tmp1 b where a.tjr_id = b.user_id and a.user_id not in (select user_id from @tmp1)  
select * from @tmp1 order by tjr_id
分享到:
评论

相关推荐

    实现 Oracle 连接 SQL Server

    ### 实现 Oracle 连接 SQL Server 的方法与步骤 在 IT 领域,数据库间的交互对于实现数据共享和业务协同至关重要。Oracle 和 SQL Server 分别作为市场上两款主流的数据库管理系统,它们之间的连接需求十分常见。...

    sqlserver-oracle 数据类型对照

    - `LEVEL`在Oracle的`CONNECT BY`查询中用于表示层级,SQL Server中无直接对应。 了解这些对照关系对于在SQL Server和Oracle之间迁移数据或编写跨平台的SQL脚本至关重要。同时,开发者也需要根据实际需求和数据库...

    Oracle19C RAC通过gateways连接SQL server数据库

    在本场景中,我们探讨的是如何在Oracle 19C RAC环境中通过Oracle数据库网关(Gateway)连接到SQL Server 2012数据库。Oracle Gateway使得不同数据库系统间的数据交互成为可能,实现异构数据库间的透明访问。 首先,...

    Oracle和SqlServer语法区别

    这些子句在SqlServer中不支持,但是可以使用其他方式实现相同的结果。 二、函数和过程 Oracle和SqlServer都支持函数和过程,但是它们之间存在一些差异。 Oracle支持PL/SQL函数和过程,而SqlServer支持Transact-...

    ORACLE和SQL Server的语法区别

    在进行Oracle到SQL Server的迁移过程中,需要特别关注上述几个方面。尽管这两种数据库系统在许多方面具有相似性,但也存在显著差异。了解这些差异并采取适当的转换策略对于确保迁移成功至关重要。通过遵循上述指导...

    oracle10g或11g通过dblink访问sql server数据库

    本文档详细介绍了如何在Oracle 10g或11g环境中使用DBLink来访问SQL Server数据库的方法。这种方法对于那些习惯于使用Oracle进行数据库操作的开发人员来说尤其有用,因为它提供了一种在不同类型的数据库之间无缝切换...

    oracle通过odbc建立dblink访问sqlserver数据库

    为了实现Oracle数据库与SQLServer数据库之间的数据交换,可以通过多种方式实现连接,其中一种较为简便的方法是利用Oracle提供的ODBC(Open Database Connectivity)机制来建立DBLink。这种方式相较于使用透明网关...

    通过ORACLE通用连接访问SQLServer数据库的方法

    完成上述配置后,下一步是在Oracle数据库中创建数据库链接(DATABASE LINK),以实现从Oracle数据库直接访问SQL Server数据库的功能。 1. **创建公共数据库链接**:使用以下SQL命令创建公共数据库链接ET2000: ```...

    Oracle和SQL_Server的语法区别

    - Oracle 的 `START WITH U CONNECT BY` 用于创建层次查询,SQL Server 可以通过递归公共表表达式(CTE)或存储过程实现类似功能。 - Oracle 支持 `INTERSECT` 和 `MINUS` 集合运算符,而 SQL Server 用 `EXISTS` 和...

    Sql Server与Oracle的区别

    - **SELECT语句**:尽管基本语法相似,但Oracle支持特定的优化提示和集合运算符如START WITH和CONNECT BY,以及INTERSECT和MINUS,这些在Sql Server中需要通过其他方式实现,比如使用EXISTS和NOT EXISTS子句。...

    ORACLE与SQLSERVER语法差异分析

    - 在SQL SERVER中,递归查询通常使用`WITH`子句创建公共表表达式(CTE),结合`UNION ALL`和`JOIN`来实现。如示例所示,`cte_root`或`cte_child`定义递归起点,`connect by ID=prior ParentID`表示递归路径。 - ...

    从Oracle到SQL Server的透明网关配置

    最后,测试数据库连接是否成功,可以通过查询SQL Server中的表来验证: ```sql SQL> DESC football_team@from_sql; ``` 这将显示SQL Server数据库`football_team`表的结构。 值得注意的是,通过透明网关访问远程SQL...

    Oracle11GR2通过透明网关访问SQLSERVER

    HS_FDS_CONNECT_INFO="SERVER=SQLSERVER_HOSTNAME;DATABASE=pubs" HS_DB_NAME=pubs ``` - 如果 SQL Server 实例带有反斜杠 `\` 或端口号,则需按照特殊格式配置,例如: - 反斜杠实例:`192.168.1.1\\ng` - 带...

    Oracle10g US7ASCII 编码中文无法导入sqlserver问题解决

    4. **执行 OPENQUERY**:最后,在 SQL Server 中使用 `OPENQUERY` 函数查询 Oracle10g 中的数据,并通过 `utl_raw.cast_to_varchar2` 函数将 RAW 格式的中文数据转换回 VARCHAR2 格式,以确保数据能够被正确读取。...

    Oracle 10g + SQL SERVER 2000 透明网关设置

    Oracle 10g 透明网关设置用于与 SQL SERVER 2000 数据库的集成,使得用户可以在 Oracle 环境中直接访问 SQL SERVER 的数据,无需了解底层的网络和数据库细节。以下是对该设置过程的详细说明: 首先,确保在安装 ...

    使用透明网关实现oracle访问sqlserver

    1. **创建DBLink语句**:使用如下的SQL语句创建DBLink,例如`create public database link rmlis6 connect to LZHIS identified by LZHIS using '...'`,其中'...'包含了SQL Server的连接信息。 2. **验证连接**:...

    sql server 2005到oracle10g数据库的移植视频教程

    4. **数据迁移**:将SQL Server中的数据迁移至Oracle数据库,可能需要额外的脚本或工具来处理数据类型差异。 ### 后期整合与测试 - **数据一致性检查**:验证迁移后数据的完整性和一致性。 - **功能测试**:确保...

    oracle和SQL的语法区别

    在 SELECT 语句方面,虽然基本结构相似,但 Oracle 的特定功能如 `START WITH` 和 `CONNECT BY` 用于构建层次查询,在 SQL Server 中可以通过递归查询或存储过程实现。此外,Oracle 的 `INTERSECT` 和 `MINUS` 集合...

Global site tag (gtag.js) - Google Analytics