您的位置:程序门 -> ms-sql server -> 基础类



一条sql语句返回的记录集能不能再用于一个新的查询,急,在线等!!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


一条sql语句返回的记录集能不能再用于一个新的查询,急,在线等!![已结贴,结贴人:lan_yanjing]
发表于:2007-06-28 16:25:34 楼主
我在程序初始化后用一条查询得到一个记录集,主要是把数据库中分散的表连接集中起来,避免后面频繁使用超长的sql语句,那后面要想得到这个记录集的子记录集(不知道是不是这么个概念),也就是选择其中一部分字段成为一个新的记录集,要怎么做啊,顺便问一下什么是虚表,如果有这个概念的话
对了,用的是vc,ado
发表于:2007-06-28 16:28:001楼 得分:20
select   列1,列2...
from   (结果集)t
发表于:2007-06-28 16:29:462楼 得分:50
你可以將這個查詢生成一個視圖,以後你直接調用這個視圖即可
eg:
--創建視圖
create   view   v_test
as
...(你的語句)
go

--調用
select  
a.*
from
v_test   a
inner   join
  表
on   條件
发表于:2007-06-28 16:31:523楼 得分:0
另外,你的後期的調用和前面的查詢是在一個存儲過程內部的話,也可以生成一個臨時表,然後調用這個臨時表

eg:
--創建臨時表
select   你顯示的列   into   #t
from   ...(你的語句)

--調用
select    
a.*
from
#t   a
inner   join
  表
on   條件

--刪除
drop   table   #t
发表于:2007-06-28 16:31:564楼 得分:5
先所有表关联建个视图~   记录集的子记录集就从视图中查询

发表于:2007-06-28 16:32:435楼 得分:5
虚表就是视图
发表于:2007-06-28 16:36:016楼 得分:5
--这样?

select   *
from   (select   *   from   表名)   as   t
发表于:2007-06-28 16:36:157楼 得分:5
你应该是想创建视图
发表于:2007-06-28 16:47:438楼 得分:0
完了,当年数据库基本上没学,视图这东西只是传说..初用sql各位见笑了
我现在手里有的只是一个通过open语句打开的_recordset对象,要再通过什么样的语句得到一个视图或临时表呢,就像paoluo提供的两种方法?
发表于:2007-06-28 16:48:399楼 得分:0
苦于这个打开的记录集没有表名啊,如果能想数据库中的表一样用就好了
发表于:2007-06-28 17:11:0210楼 得分:0
果然是视图,已经再sql   server里建好了,不过还是想知道怎么在程序里用语句建立啊,再帮忙写详细些啊
发表于:2007-06-28 17:14:2711楼 得分:0
lan_yanjing(露寒)   (   )   信誉:100         blog       加为好友     2007-06-28   17:11:02     得分:   0    
 
 
      果然是视图,已经再sql   server里建好了,不过还是想知道怎么在程序里用语句建立啊,再帮忙写详细些啊
   
 
---------
建好了,在程序中就不用建立了。

直接在語句中調用即可。

eg:

select   *   from   視圖名
发表于:2007-06-28 17:17:4212楼 得分:0
恩,对啊,不过第一次程序执行的时候总要建立一下吧,不能让用程序的人自己去建视图啊,还有是不是以后程序执行的时候先查找一下该视图是不是存在,已经有了还建立的话会不会出现什么问题呢
发表于:2007-06-28 17:21:0613楼 得分:0
你直接在數據庫中將視圖建立好即可。

只要你在數據中不刪除,那麼你程序中直接調用即可。

不用在程序中去建立視圖的。
发表于:2007-06-28 17:25:4614楼 得分:5
把生成的记录集放在一个临时表中,然后再用这个临时表做一个新的查询,临时表不用的可删除
发表于:2007-06-28 17:27:5715楼 得分:0
if   exists(select   1   from   sysobjects   where   xtype= 'v '   and   name= '视图名 ')
drop   view   视图名
go
create   view   视图名
as
select   *   from   表

将这语句想办法放在你前台程序里.
发表于:2007-06-28 17:37:3216楼 得分:5
可以
select   *   from   (select   *   from   table   )t
发表于:2007-06-28 17:42:0917楼 得分:0
hejiahuanle()   (   )   信誉:100         blog       加为好友     2007-06-28   17:25:46     得分:   0    
 
 
      把生成的记录集放在一个临时表中,然后再用这个临时表做一个新的查询,临时表不用的可删除
   
 
----------
如果他是在一個存儲過程內部使用,就使用臨時表。

如果是以後都要調用,用視圖更好.
发表于:2007-06-28 17:45:0418楼 得分:0
如果你的查询语句,输出列比较固定就鱼的做法就很好.

如果非得在程序在判断创建的话,注意权限问题.
发表于:2007-06-28 17:51:5219楼 得分:0
哦,我知道了,看到了视图属性中的那段话,谢谢楼上各位了


快速检索

最新资讯
热门点击