【问题标题】:Output multiple queries to same table/file?将多个查询输出到同一个表/文件?
【发布时间】:2015-12-07 17:05:28
【问题描述】:

我有一堆非常简单的SELECT 语句。我想将它们全部输出到同一个结果集(UI 表或文件)。这是我最近尝试过的事情:

@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 查询执行到一个结果集中?

【问题讨论】:

  • 您能否将您的 SELECT 语句合并为一个结果集?
  • 看起来这就是我所需要的。想要发布答案?或者找一个重复的(现在我知道这是一个简单的命令)
  • 与您的问题无关,但没有 order by 子句的 select top n 查询可能不会产生预期的结果。
  • 是的,这是一个截断的例子。不过感谢您的说明。
  • 对于@export set 命令,添加参数AppendFile="true",您将获得文件中的所有结果集。阅读更多:confluence.dbvis.com/display/UG92/Exporting+Query+Results

标签: sql dbvisualizer intersystems-cache


【解决方案1】:

斯科特,试试:

@export on;
@export set filename="<outputfile.csv>" appendfile="true";
select * from tab;
@export set CsvIncludeColumnHeader="false";
select * from tab;
select * from tab;

这将导出带有列标题的第一个结果集和没有列标题的后续结果集。

【讨论】:

  • 谢谢@roger!你是开发者吗?
  • 是的,我在 DbVisualizer 团队中
  • 太棒了,继续努力!我喜欢这个产品。
【解决方案2】:

实现此目的的一种方法是返回一个结果集,使用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;

【讨论】:

  • 所以我做了UNION,它似乎工作。会有什么区别?
  • 澄清一下,使用UNION,我得到了 5 个结果,正如预期的那样。 UNION ALL 我会/应该看到什么?这个例子会有什么不同吗?
  • 普通的 UNION 从结果中消除重复行(所有值相同)。 UNION ALL 在结果中保留重复的行。 docs.intersystems.com/cache20152/csp/docbook/…
  • 我在回答中将UNION ALL 与差异的解释联系起来。我假设由于您按 ID 选择 *,因此结果永远不会重复。因此,UNION ALL。
【解决方案3】:

在 IQ 数据库中客户端可以设置一个选项

set option isql_show_multiple_result_sets = 'on';

2 个问题:

  1. 这是哪个数据库?
  2. 可以返回多个结果集中的哪个位置?

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多