sql server怎么实现oracle的connect by

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server怎么实现oracle的connect by相关的知识,希望对你有一定的参考价值。

通过配置本地数据库的tns配置文件实现:
去oracle安装目录下oracle\product\10.2.0\db_2\NETWORK\ADMIN\ 找到tnsnames.ora,用记事本打开,里边有远程数据库的tns连接配置串如下
ORCL23 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.23)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ORCL)
)
)
添加好ip、端口和目标数据库的实例名(SID),然后确保tns名称(ORCL23)在整个文档中唯一,保存后打开数据库连接工具,输入远程数据库上的用户名密码,选择数据库对象为你配置的连接名就可以了
参考技术A

sql server中实现oracle的connect by使用tree实现:

sql写法如下:

WITH tree (empid, name, level) AS  (
  SELECT empid, name, 1 as level
  FROM emp
  WHERE name = 'Joan'

  UNION ALL

  SELECT child.empid, child.name, parent.level + 1
  FROM emp as child
    JOIN tree parent on parent.empid = child.mgrid
)
SELECT name 
FROM tree;

Oracle, SQL Server, My SQL如何实现数据分页查询语句

参考技术A Oracle, SQL Server 和MySQL的分页SQL语句如下:Oracle:方法一:SELECT * FROM(SELECT A.*, ROWNUM RNFROM (SELECT * FROM TABLE_NAME) AWHERE ROWNUM <= 40)WHERE RN = 21;方法二:SELECT * FROM(SELECT A.*, ROWNUM RNFROM (SELECT * FROM TABLE_NAME) A)WHERE RN between 21 and 40公认第二种方法效率没有第一种高。原因是第二种要把子查询执行完,而第一种方法子查询执行到Rownum=40后就结束了。MySQL:SELECT * FROM TABLE_NAME LIMIT 10, 20表示从第11条数据开始取20条数据返回,limit后的2个参数含义为:起点和步长,即从那条数据开始,取多少条数据,再如取前20条数据:SELECT * FROM TABLE_NAME LIMIT 0, 20SQL Server2000:SELECT TOP @pagesize * FROM TABLE_NAME WHERE id not in (SELECT TOP @pagesize*(@page-1) id FROM TABLE_NAME ORDER BY id) ORDER BY id本回答被提问者采纳

以上是关于sql server怎么实现oracle的connect by的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE LEFT JOIN 子查询 在SQL SERVER中可以使用如图中的子查询,ORACLE中怎么实现

SQL Server 如何执行 带参数的 存储过程

怎么把sqlserver一个表中的数据导入到oracle中???

怎么将数据库从Oracle迁移到SQL Server,或从Oracle迁移到MySQL

Oracle, SQL Server, My SQL如何实现数据分页查询语句

SQL SERVER2012同步Oracle数据