回 帖 发 新 帖 刷新版面

主题:关于临时视图

向大家学习!
在研究sql时看到书上有一节关于"临时视图和递归查询"(《数据库系统教程 上》王能斌),书上还附了如下的程序:
with RECURSIVE path( x,y ) as
((select *
  from ARC)
   UNION
(select path.x,ARC.y
 from path,ARC
 where path.y=ARC.X))

我自己建了个名为ARC的表,但是执行上述代码时出现:
服务器: 消息 156,级别 15,状态 1,行 1
在关键字 'with' 附近有语法错误。

在百度上搜了下关于临时视图却发现很多帖子都说没有这个概念.请问下是否存在"临时视图",如果存在,应该怎么创建呢?

回复列表 (共4个回复)

沙发

这时哪种数据库语言?

板凳


sql

3 楼

王能斌 好像是我学校的一个博士吧,还有这个语法像oracle多点。。。

4 楼

这是不是在说connect by/start with的实现?

看看这是不是你要的临时视图(派生表):

所谓派生表,就是在FROM 子句后面,用一个查询来代替常规的表,如:
Select *
From    (select c1, c2
          From    T
          Where name = ‘hello world’) TMPV
Where c1 > 10

派生表可以把它看做是一个无名的临时视图,等价于:

create view TMPV as select c1, c2 from T where name = ‘hello world’;

select * from TMPV where c1 > 10


我来回复

您尚未登录,请登录后再回复。点此登录或注册