【发布时间】:2020-01-17 15:39:42
【问题描述】:
由于 SQL Server 和链接的 Oracle 服务器之间的问题迫使我使用 OpenQuery,我在 NVARCHAR 中构建了一个查询。它工作正常,当我运行exec (@OPENQUERYFULL) 时,我得到了我需要的结果。
我的结果是另一个查询所需的单列数字。我希望能够将这些结果用作“IN ()”语句或 JOIN,但到目前为止我尝试的方法都失败了。
有没有办法在另一个查询中直接使用exec 查询的结果?
更新: 需要明确的是,我试图避免使用临时表。
【问题讨论】:
-
您是否尝试过声明一个表变量并将 oracle 查询的结果存储在其中?一列数字只是一列数字。你能提供一个失败的代码示例吗?
-
您可以使用链接服务器/ 4 部分名称来编写使用普通 JOIN 的单个查询,但如果您的原始 OPENQUERY 中有很多内容,它可能会非常慢。您可以创建一个临时表(或表变量)来存储 OPENQUERY 的结果,然后在第二个查询中使用它,但现在您有两个查询和潜在的内务处理。
-
@RichardHansell 我知道我可以编写一个临时表并使用它。我希望避免编写临时表,而只是像子查询一样使用它。我无法真正提供示例,因为它是敏感的公司信息,并且需要 30 分钟才能将其清理为帖子。我希望有人知道一种将
exec查询的结果用作子查询或联接的简单方法。
标签: sql sql-server subquery exec