多个相同结构表查询的问题

drifter250771 2011-05-27 12:32:05
SQL2000,库名:DBNM
有多张结构完全一致的表:前缀均为TBNM,后缀四位字符不固定
本数据库内没有其它表名前缀也是TBNM但结构不一样的,可以理解为操作对象是TBNM****

现欲列出所有TBNM****表中字符串字段FDNM值等于123456的记录
...全文
222 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
可能要先列出所有表名,再去查询

菜鸟这样想的
打一壶酱油 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 josy 的回复:]
SQL code
declare @sql varchar(8000)
select
@sql=isnull(@sql+'union all select * from ','select * from ')+'['+name+']'
from sysobjects
where xtype= 'U' and name like 'TBNM%'

set @sql='sel……
[/Quote]
++
--小F-- 2011-05-27
  • 打赏
  • 举报
回复
declare @sql varchar(8000)
select
@sql=isnull(@sql+'union all select * from ','select * from ')+'['+name+']'
from sysobjects
where xtype= 'U' and left(name,4)='TBNM'
set @sql='select * from ('+@sql+') t where FDNM=123456'

exec (@sql)

动态字符串拼接
rucypli 2011-05-27
  • 打赏
  • 举报
回复
union all
xuexiaodong2009 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 josy 的回复:]
SQL code
declare @sql varchar(8000)
select
@sql=isnull(@sql+'union all select * from ','select * from ')+'['+name+']'
from sysobjects
where xtype= 'U' and name like 'TBNM%'

set @sql='select * ……
[/Quote]应该可行
drifter250771 2011-05-27
  • 打赏
  • 举报
回复
感谢josy,结贴给分
rocklicong 2011-05-27
  • 打赏
  • 举报
回复
declare @sql varchar(8000)
select
@sql=isnull(@sql+' union all select * from ',' select * from ')+name from sysobjects where xtype= 'U' and name like 'TBNM%'
set @sql='select * from ('+@sql+') t where FDNM=123456'

exec (@sql)

同二楼,只是 union all 前后需加空格!

drifter250771 2011-05-27
  • 打赏
  • 举报
回复
得到表名很容易
select name from sysobjects where xtype= 'U' and left(name,4)='TBNM' order by name
问题是后面搞不懂了。。。


百年树人 2011-05-27
  • 打赏
  • 举报
回复
declare @sql varchar(8000)
select
@sql=isnull(@sql+'union all select * from ','select * from ')+'['+name+']'
from sysobjects
where xtype= 'U' and name like 'TBNM%'

set @sql='select * from ('+@sql+') t where FDNM=123456'

--print @sql

exec (@sql)
hanger1212 2011-05-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 josy 的回复:]
SQL code
declare @sql varchar(8000)
select
@sql=isnull(@sql+'union all select * from ','select * from ')+'['+name+']'
from sysobjects
where xtype= 'U' and name like 'TBNM%'

set @sql='select * ……
[/Quote]
+1

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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