合并行条件和表合并的SQL脚本
我有以下SQL代码来执行清理任务: 从满足条件的表中选择前n行,并将其放入新表中。请注意,[source].var='1'对于不同的表是不同的合并行条件和表合并的SQL脚本,sql,ms-access,ms-access-2007,Sql,Ms Access,Ms Access 2007,我有以下SQL代码来执行清理任务: 从满足条件的表中选择前n行,并将其放入新表中。请注意,[source].var='1'对于不同的表是不同的 SELECT TOP n * INTO tablen FROM source WHERE [source].var='1'; # concrete example SELECT TOP n * INTO table1 FROM source WHERE [source].var1='1'; SELECT TOP n * INTO table2 FR
SELECT TOP n * INTO tablen
FROM source
WHERE [source].var='1';
# concrete example
SELECT TOP n * INTO table1
FROM source
WHERE [source].var1='1';
SELECT TOP n * INTO table2
FROM source
WHERE [source].var2='1';
SELECT TOP n * INTO table3
FROM source
WHERE [source].var3='1';
SELECT TOP n * INTO table4
FROM source
WHERE [source].var4='1';
SELECT TOP n * INTO table5
FROM source
WHERE [source].var5='1';
在第一步生成n个表之后,我使用查询将它们连接起来
# code2
SELECT * FROM table1
UNION ALL
SELECT * FROM table2
UNION ALL
SELECT * FROM table3
UNION ALL
SELECT * FROM table4
UNION ALL
SELECT * FROM table5
最后,我将第二个结果放入一个新表中,以便使用它
SELECT *
INTO dest
FROM code2
有人知道如何将这些繁琐的任务放到一个SQL查询中,这样我就不必重复15次了吗?我会尝试回答这个问题,但这是我的第一个答案,所以请放心。首先,我不确定每个顶行查询的源表是否相同。如果是,那么你不需要桌子,1-5。当然,除非你出于某种原因想要5张临时表……我想你知道你在用UNION ALL做什么 只需内联查询原始表:
select a.* into dest
from (select TOP n *
from source
where source.var1='1'
UNION ALL
select TOP n *
from source
where source.var2='1'
UNION ALL
select TOP n *
from source
where source.var3='1'
UNION ALL
select TOP n *
from source
where source.var4='1'
UNION ALL
select TOP n *
from source
where source.var5='1'
) a
你想对这些任务做些什么?只是想从一个有单独标准的表格中得到前n行,然后再把它们放在一起。祝你新年快乐@riverdog!这是一流的!