将多个查询输出到同一个 table/file?
Output multiple queries to same table/file?
我有一堆非常简单的 SELECT
语句。我想将它们全部输出到同一个结果集(UI table 或文件)。这是我最近尝试的事情:
@export on;
@export set filename="c:\test.csv";
@export set CsvColumnDelimiter=",";
SELECT TOP 1 * FROM TableName WHERE ID = 1;
SELECT TOP 1 * FROM TableName WHERE ID = 2;
SELECT TOP 1 * FROM TableName WHERE ID = 3;
SELECT TOP 1 * FROM TableName WHERE ID = 4;
SELECT TOP 1 * FROM TableName WHERE ID = 5;
@export off;
显然 CSV 文件只包含 ID 5,因为它只是覆盖。有什么办法追加吗?或者,在 DBVis 之外是否有任何 SQL
选项允许我将所有这些 SQL 查询执行到一个结果集中?
实现此目的的一种方法是return一个结果集,使用UNION ALL。
SELECT TOP 1 * FROM TableName WHERE ID = 1
UNION ALL
SELECT TOP 1 * FROM TableName WHERE ID = 2
UNION ALL
SELECT TOP 1 * FROM TableName WHERE ID = 3
UNION ALL
SELECT TOP 1 * FROM TableName WHERE ID = 4
UNION ALL
SELECT TOP 1 * FROM TableName WHERE ID = 5;
斯科特,试试:
@export on;
@export set filename="<outputfile.csv>" appendfile="true";
select * from tab;
@export set CsvIncludeColumnHeader="false";
select * from tab;
select * from tab;
这将导出包含 headers 列的第一个结果集和不包含 headers 列的后续结果集。
在 IQ 数据库中,客户端可以设置一个选项
set option isql_show_multiple_result_sets = 'on';
2 个问题:
- 这是哪个数据库?
- 在多个结果集中哪里可以返回?
我有一堆非常简单的 SELECT
语句。我想将它们全部输出到同一个结果集(UI table 或文件)。这是我最近尝试的事情:
@export on;
@export set filename="c:\test.csv";
@export set CsvColumnDelimiter=",";
SELECT TOP 1 * FROM TableName WHERE ID = 1;
SELECT TOP 1 * FROM TableName WHERE ID = 2;
SELECT TOP 1 * FROM TableName WHERE ID = 3;
SELECT TOP 1 * FROM TableName WHERE ID = 4;
SELECT TOP 1 * FROM TableName WHERE ID = 5;
@export off;
显然 CSV 文件只包含 ID 5,因为它只是覆盖。有什么办法追加吗?或者,在 DBVis 之外是否有任何 SQL
选项允许我将所有这些 SQL 查询执行到一个结果集中?
实现此目的的一种方法是return一个结果集,使用UNION ALL。
SELECT TOP 1 * FROM TableName WHERE ID = 1
UNION ALL
SELECT TOP 1 * FROM TableName WHERE ID = 2
UNION ALL
SELECT TOP 1 * FROM TableName WHERE ID = 3
UNION ALL
SELECT TOP 1 * FROM TableName WHERE ID = 4
UNION ALL
SELECT TOP 1 * FROM TableName WHERE ID = 5;
斯科特,试试:
@export on;
@export set filename="<outputfile.csv>" appendfile="true";
select * from tab;
@export set CsvIncludeColumnHeader="false";
select * from tab;
select * from tab;
这将导出包含 headers 列的第一个结果集和不包含 headers 列的后续结果集。
在 IQ 数据库中,客户端可以设置一个选项
set option isql_show_multiple_result_sets = 'on';
2 个问题:
- 这是哪个数据库?
- 在多个结果集中哪里可以返回?