原贴地址:http://expert.csdn.net/Expert/topic/2946/2946303.xml?temp=.2294428不过邹兄,能不能再帮我解决个问题。呵呵我的数据库里有表tab_info_101
tab_info_102
tab_info_103
这三个表结构完全一样,我现在要把三个表的内容用union合在一起。tab_info_是固定的,但表名的最后部分不确定,可能是101,102,103,还可能有其他的如104,105。我要把所有以tab_info_开头的表数据合在一起(表结构都一样)。我可以通过程序读取所有表,进行判断,再合并。有没有可以直接通过sql语句实现,请帮忙。如果还想要分,解答后告诉我希望多少分,我再开贴结了。^_^
tab_info_102
tab_info_103
这三个表结构完全一样,我现在要把三个表的内容用union合在一起。tab_info_是固定的,但表名的最后部分不确定,可能是101,102,103,还可能有其他的如104,105。我要把所有以tab_info_开头的表数据合在一起(表结构都一样)。我可以通过程序读取所有表,进行判断,再合并。有没有可以直接通过sql语句实现,请帮忙。如果还想要分,解答后告诉我希望多少分,我再开贴结了。^_^
set @sql=''
select @sql=@sql+' select * from '+name+' union all' from sysobjects where xtype='u' and name like 'tab[_]info[_]___'
set @sql=left(@sql,len(@sql)-10
exec (@sql)好久没写了,还是那句话,错了不管哈,哈哈,哈哈哈......
set @sql=''
select @sql=@sql+' select * from '+name+' union all' from sysobjects where xtype='u' and name like 'tab[_]info[_]___'
if len(@sql)>10
begin
set @sql=left(@sql,len(@sql)-10)
exec (@sql)
end
哈,哈哈,哈哈哈......
declare @sql varchar(2000)
set @sql='select * into ##a '
select @sql=@sql+' from '+name+' union all select * ' from sysobjects where xtype='u' and name like 'tab[_]info[_]___'
if len(@sql)>19
begin
set @sql=left(@sql,len(@sql)-19)
exec (@sql)
enddeclare @sql1 varchar (2000)set @sql1 =''
select @sql1=@sql1+',max(case xmmc when '''+xmmc+''' then xmnr else null end) as ['+xmmc+']'
from (select distinct xmmc from ##a) as x
set @sql1='select userid'+@sql1+' from ##a group by userid drop table ##a'
exec (@sql1)
服务器: 消息 245,级别 16,状态 1,行 1
将 varchar 值 '2002-1-2' 转换为数据类型为 int 的列时发生语法错误。上面的那个userid在我真实表里是编号,值是2002-1-2,可能有关。帮忙看看。
请Hahahahahaha CCEO 到谢谢Hahahahahaha CCEO 贴子取分,haha兄30,ceo兄70有意见当面提。呵呵。
我的msn:[email protected] 本人从事军工行业应用系统开发,主要是ASP.NET C#
希望多联系和探讨。