首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将pl/sql代码编写成Ansi-Sql?

如何将pl/sql代码编写成Ansi-Sql?
EN

Stack Overflow用户
提问于 2015-11-09 08:01:43
回答 1查看 704关注 0票数 1

对于sql专家来说,我的问题可能并不具有挑战性。我想将我的sql重写为ansi-sql。如何在Oracle中将sql下面的内容更改为ansi-sql?

代码语言:javascript
复制
select * 
from TEST r
start with r.childid=@CHILDID 
connect by prior r.PARENTID=r.childid and r.recordstatus=1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-09 08:08:19

ANSI SQL等效项将是一个递归的公共表表达式:

代码语言:javascript
复制
with recursive tree as (
   select * 
   from test
   where childid = .... --<< this is the START WITH part
   union all
   select child.* 
   from test child
     join tree parent ON child.parentid = parent.childid and child.recordstatus = 1  --<< this is the CONNECT BY part
) 
select *
from tree

如果您还想将recordstatus = 1条件应用于递归启动,则我不是100%。

Oracle不符合这里的标准,您不允许使用recursive关键字。

因此,您需要从上面的查询中删除 recursive (Server也是如此)

有关递归公共表表达式(在Oracle中称为“子查询分解”)的更多详细信息,请参见手册:

10002.htm#SQLRF55268

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33604723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档