从1个SQL文件中运行多个查询,显示多个表中的结果

时间:2015-05-27 07:28:48

标签: sql teradata

我有一组回归测试查询。这些基本上是存储在不同文件中的select语句。

File  Query
A      SELECT a ...
B      SELECT b ...
C      SELECT c ...

这意味着我必须打开多个文件并运行查询。是否可以将这些SELECT语句放在同一个文件中,但是在不同的表和/或不同的结果集中显示结果?

我希望有一个文件D显示不同表中SELECT语句a,b和c的结果。 (最好只包括文件A,B,C,但我当然可以复制粘贴它)。这可能吗?万一有可能,我该怎么办?

5 个答案:

答案 0 :(得分:0)

您只需将所有选择查询附加到一个输出文件中即可。将下面的代码放在.bat文件中并使用bcp命令。

select * from table1 >> textfile1.txt 
select '================' >> textfile1.txt
select * from table2 >> textfile1.txt 
select '================' >> textfile1.txt
select * from table3 >> textfile1.txt 
select '================' >> textfile1.txt

答案 1 :(得分:0)

最简单的方法是将查询复制并粘贴到一个文件中,并执行以下操作:

create table temp_db.table_name_a as(
    select * from queryATable
)with data primary index(indexes);

create table temp_db.table_name_b as(
    select * from queryBTable
)with data primary index(indexes);

create table temp_db.table_name_c as(
    select * from queryCTable
)with data primary index(indexes);

create table temp_db.combined_table_D as(

    select fields, 'tableAResult Set' as source from temp_db.table_name_a

union all

    select fields, 'tableBResult Set' as source from temp_db.table_name_b

union all 

    select fields, 'tableCResult Set' as source from temp_db.table_name_c

)with data primary index(indexes);

答案 2 :(得分:0)

不知道您可以访问哪些工具很难回答。

然而,获得多个答案集的最简单方法之一是使用SQL Assistant。

例如:在您的查询窗口中输入或粘贴以下内容

SELECT * FROM dbc.DBCInfo;
SELECT * FROM dbc.DBCInfo;
SELECT * FROM dbc.DBCInfo;
菜单中的

选择文件 - >导出结果

点击F5(或绿色脚),它会提示您输入位置和文件名,并输入您想要的文件名。

然后会保存下面的结果      RELEASE,14.10.02.11      VERSION,14.10.02.12      语言支持模式,标准

 --------------------------------------------------------------------------------

 RELEASE,14.10.02.11
 VERSION,14.10.02.12
 LANGUAGE SUPPORT MODE,Standard

 --------------------------------------------------------------------------------

 RELEASE,14.10.02.11
 VERSION,14.10.02.12
 LANGUAGE SUPPORT MODE,Standard

您还可以设置选项,以便在每次查询时保存sql等。

希望这会有所帮助。

答案 3 :(得分:0)

在SQL Developer中,一次运行多个查询并获得1个结果而不是多个选项卡的结果的最简单方法是,选择要运行的所有查询,而不是运行“ run statement”,运行“ Run Script” ”或(F5)。这将返回如下结果:


此处查询结果


此处查询结果


答案 4 :(得分:0)

如果需要多个响应,则可以创建一个存储过程。

使用存储过程,您可以进行一次调用,并返回多个数据集:

CREATE PROCEDURE Foo     
AS   
    SELECT * AS Table1
    SELECT * AS Table2;
    SELECT * AS Table3;
GO

EXECUTE Foo;

MSDN stored procedure