有个表 flow,里面保存着一些数据,其中有字段form_id,form_filter保存着,我需要动态查询的表的部分表名和where,flow保存很多数据,假如有一个form_id 值为 tab1,那个就要查询表 form_tab1这个表的中数据select title form form_tab1 where filter=form_filter; (form_filter能保证数据的唯一性)
最后还要把flow的部分数据和这个 查询的 title 一起查询出各种goolge,百度都没找到方法,大家帮帮忙哦
最后还要把flow的部分数据和这个 查询的 title 一起查询出各种goolge,百度都没找到方法,大家帮帮忙哦
解决方案 »
- 数据库显示正在恢复,如何强制停止或删除
- 急寻 Oracle 合作伙伴,目前有一企业需要将一个数据由SQL 2000升级到Oracle 10 ( 马甲发帖 )
- 选择一张表中间的10个字段(第11到第20)的SQL语句怎么写??
- 我用"导入和导出数据"复制数据库时,为何总是有几十个表无法复制.复制时,SQL 服务要停止吗?
- SQLServer全文索引对中文支持
- 一个SQL查询问题,立即解决,立即给分
- oracle中用存储过程怎么实现处理TXT文件
- 谁能完完全全详细的解释一下下面的语句?
- sql2005的网络应用
- 关于2表查询
- 关于数据同步的疑惑
- win7上安装SqlServer2005后,用windows身份登不上???求指点
FROM flow A,form_tab1 B
WHERE A.FORM_ID = 'tab1'
AND B.filter=A.form_filter
declare @sql nvarchar(1000)
select @sql=''
select @sql=@sql+'select title from '+form_id+ ' where filter = '+form_filter+ 'union all ' from flow
exec(@sql)
在flow中每一条数据都要查询出对应的另一个表的一个字段保存的数据
如 flow 查出一个 form_id=tab1,form_filter=23231232 这个form_filter是动态表的查询条件,动态表也有form_filter这个字段
然后查询 select title from form_tab1 where form_filter=23231232
也就是, 做一个 这样的 view 出来
(id int, name varchar(5), descr varchar(5),
form_id varchar(5), form_filter varchar(10))insert into flow
select 1,'n_1','d_1','tab1','23231232'create table form_tab1
(form_filter varchar(10),title varchar(10))insert into form_tab1
select '23231232','t_1'create table #t(id int,title varchar(10))declare ap cursor forward_only
for select
'select '+rtrim(id)+', title from form_'+form_id+' where form_filter='''+form_filter+''' ' tsql
from flowdeclare @sql varchar(6000)
open ap
fetch next from ap into @sql
while(@@fetch_status<>-1)
begin
insert into #t(id,title) exec(@sql)
fetch next from ap into @sql
end
close ap
deallocate apselect a.id,a.name,a.descr,b.title
from flow a
inner join #t b on a.id=b.id/*
id name descr title
----------- ----- ----- ----------
1 n_1 d_1 t_1(1 row(s) affected)
*/
找人幫忙 做出來了,寫了一個PROCEDURE 先建個 虛擬表 插入 動態表格的form_id,然後用游標cursor讀出form_id 再寫入 內容就好了
謝謝了