原贴地址: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语句实现,请帮忙。如果还想要分,解答后告诉我希望多少分,我再开贴结了。^_^

解决方案 »

  1.   

    declare @sql varchar(2000)
    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)好久没写了,还是那句话,错了不管哈,哈哈,哈哈哈......
      

  2.   

    更正一下,再错了就不管了declare @sql varchar(2000)
    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
    哈,哈哈,哈哈哈......
      

  3.   

    6哈兄好,怎么还是错了不管?一起考虑(偷懒了,用了全局临时表):
    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)
      

  4.   

    结果表的表名叫什么呢?我还要从结果表里查询、统计,所以需要一个表名。是不是存储过程的最开始得建一个表(第二次执行的话,还得先清空这个表),然后把下面查询出来得内容放进去。邹兄给个再完整一点的。CCEO兄也谢谢,不过我要固定列的,那样可以改列名。
      

  5.   

    执行时发生如下错误
    服务器: 消息 245,级别 16,状态 1,行 1
    将 varchar 值 '2002-1-2' 转换为数据类型为 int 的列时发生语法错误。上面的那个userid在我真实表里是编号,值是2002-1-2,可能有关。帮忙看看。
      

  6.   

    也就是你需要先union再汇总还是先汇总再union?
      

  7.   

    搞定了,是一个项目组成员加了一个表,数据类型设置错了。昨天不仔细,没看到。不过还是回答一下ceo的猜测,实际的表是一个userid的内容都在一个表里。因为数据量很大,我这边实际项目中,把一个单位的该内容放一个表(当然不是指userid等人员信息了)。
      

  8.   

    zjcxc(邹建)兄到新贴  谢谢zjcxc(邹建)兄 帖子取分 给你100分
    请Hahahahahaha CCEO 到谢谢Hahahahahaha CCEO 贴子取分,haha兄30,ceo兄70有意见当面提。呵呵。
    我的msn:[email protected] 本人从事军工行业应用系统开发,主要是ASP.NET C#
    希望多联系和探讨。