请高手指教!关于创建这样的视图,你有更好的办法解决吗?请见。。。

imjack 2003-08-20 10:09:17
现在我要做一个比较复杂的统计,因为要在很多地方用到第一次查询的结果,所以我就把第一次的查询结果做成视图,即以后我需要再次查询第一次的查询结果时,我只需对这个视图进行查询即可。
其结果大致如下:
CREATE OR REPLACE V_FIRST_STAT AS
SELECT * FROM TABLE_A

SELECT * FROM V_FIRST_STAT
WHERE F1 IN (SELECT F2 FROM V_FIRST_STAT)
... 即很多地方需要用到V_FIRST_STAT

现在我的问题就是,在创建V_FIRST_STAT的时候,还有些参数需要在运行的时候才能确定,比如说创建时间等。也就是我需要一个“可以接受参数的视图”,怎样实现这种功能啊?
请别推荐我是用下面的方法:
SELECT * FROM (SELECT * FROM TABLE_A)
WHERE F1 IN (SELECT F2 FROM SELECT * FROM TABLE_A)
既不是用试图的方法,直接将SQL语句嵌套起来,虽然这样可行,但是,“SELECT * FROM TABLE_A”比较短,但在我的统计中,这条语句非常之长,试想,这样嵌套起来,这个SQL语句怎么看得懂啊???

请高手指教!
...全文
58 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
beckhambobo 2003-08-22
  • 打赏
  • 举报
回复
若参数多,就不要视图了,sql较灵活,具体用什么,看楼主的需求
tiangou 2003-08-22
  • 打赏
  • 举报
回复
SQL> select * from test;

ID TEXT
------ --------------------------------------------------------------------------------
5 sina.com.cn
6 sin
7 sss
8 ssssss

SQL> create view view_test as select sysdate sdate,test.* from test;

View created

SQL> select * from view_test;

SDATE ID TEXT
----------- ------ --------------------------------------------------------------------------------
2003-8-22 1 5 sina.com.cn
2003-8-22 1 6 sin
2003-8-22 1 7 sss
2003-8-22 1 8 ssssss

SQL>

创建临时表:
SQL> create global temporary table t2(id number);

Table created

SQL>

供参考:)
jiezhi 2003-08-21
  • 打赏
  • 举报
回复
使用存儲過程來做,在該過程中把數據插入臨時表(用法和固定表一樣),然后從該臨時表獲取數據。
imjack 2003-08-21
  • 打赏
  • 举报
回复
??????
armu80830 2003-08-20
  • 打赏
  • 举报
回复
用临时表应该可以解决这个问题
sijian2001 2003-08-20
  • 打赏
  • 举报
回复
另外建一张表,比如A,把那些不确定的参数放倒表A里。
定义试图的时候,对V_FIRST_STAT和表A做联接。
使用的时候,先将参数放倒表A里,再去取视图的数据。

你认为如何?
jiezhi 2003-08-20
  • 打赏
  • 举报
回复
沒有這樣帶參數的视图。
這些條件完全可以在你使用视图的時候加入。你不如使用臨時表好了。
imjack 2003-08-20
  • 打赏
  • 举报
回复
怎样使用临时表?:)

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧