问个问题,关于表合并的

wycstc353 2018-05-30 10:35:19
问个问题,关于表合并的,我通过循环,把表1,拆成了表A,B,C……,不知有多少数量的表,循环后的表不是多个吗,我没法查询,所以想问个问题,怎么把那些表合并起来,表结构都是相同的,

大概的语句就是
DECLARE 变量
while (变量的关系)
begin

select ……的查询语句
变量重新赋值
end

所以表不知有多少张,怎么合并,不用去重复
...全文
254 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wycstc353 2018-05-30
  • 打赏
  • 举报
回复
你上一步产生的表名,是将我原来的查出来的表 as 一下加个名字吗
二月十六 2018-05-30
  • 打赏
  • 举报
回复
如果不知道多少表的话,需要用楼上版主这种动态拼接的。 另外楼主的表是怎么拆分的?能不能直接从表1上直接读取查询
吉普赛的歌 2018-05-30
  • 打赏
  • 举报
回复
增加视图不就多一点点脚本而已, 这个弯都转不过来:
--增加
DECLARE @tables TABLE (
	rowNum INT IDENTITY(1,1) PRIMARY KEY
	,tableName NVARCHAR(100)
)

DECLARE 变量
WHILE (变量的关系)
BEGIN
	select ……的查询语句
	--增加
	INSERT INTO @tables(tableName)
	VALUES('你上一步产生的表名')
	
	变量重新赋值
END

--查询
DECLARE @sql NVARCHAR(MAX)

SET @sql= STUFF( (SELECT 'union all  select  '+tableName FROM @tables FOR XML PATH('')) ,1, 10,'' )
--增加视图相关sql
SET @sql= 'create view dbo.view_test as select * from ('+@sql+') as t'

PRINT @sql
--先删除已有视图
EXEC ('if exists(select 1 from sys.views where name=''view_test'') drop view dbo.view_test')
--创建视图
EXEC(@sql)
wycstc353 2018-05-30
  • 打赏
  • 举报
回复
这个我知道,我想要的是不知道一共有多少张表的,你有没有看我上面的说明啊,最好合并后的能转成视图,创建视图的时候没法用begin end 和临时表,有人能转吗
吉普赛的歌 2018-05-30
  • 打赏
  • 举报
回复
--增加
DECLARE @tables TABLE (
rowNum INT IDENTITY(1,1) PRIMARY KEY
,tableName NVARCHAR(100)
)

DECLARE 变量
WHILE (变量的关系)
BEGIN
select ……的查询语句
--增加
INSERT INTO @tables(tableName)
VALUES('你上一步产生的表名')

变量重新赋值
END

--查询
DECLARE @sql NVARCHAR(MAX)

SET @sql= STUFF( (SELECT 'union all select * from '+tableName FROM @tables FOR XML PATH('')) ,1, 10,'' )

SET @sql= 'select * from ('+@sql+') as t'

PRINT @sql

EXEC(@sql)
二月十六 2018-05-30
  • 打赏
  • 举报
回复
select * from ( select * from A union all select * from B …… )t
wycstc353 2018-05-30
  • 打赏
  • 举报
回复
问一个问题,关于函数的 我第一个函数是这样的 函数1(参数)( …… 返回一个表 ) 第二个函数是这样的 (变量表 循环( 得到关于函数1的参数 将函数1得到的表插入变量表 ) 最终返回变量表 ) 怎么弄啊

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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