SQL 脚本帮助,将两个查询合二为一

Posted

技术标签:

【中文标题】SQL 脚本帮助,将两个查询合二为一【英文标题】:SQL Script Help, combine two queries into one 【发布时间】:2010-06-29 18:49:22 【问题描述】:

我想知道这两个查询是否可以合并为一个查询?

查询 1:将 @guidID 插入到查询 2:

DECLARE @guidID uniqueIdentifier
    SET @guidID = (SELECT guidID FROM dbo.table1 WHERE IntID = 1) 

查询 2:从函数和 table1 中检索组合表

SELECT o.guidID, IntID, Title, func.Name 
  FROM dbo.table1 o
 INNER JOIN dbo.func1(o.guidID) func ON func.guidID = o.guidID
 WHERE IntID = 1

func1 接受一个 guidID 对象 返回 (guidID, IntID

的表

感谢您的帮助,这是我所得到的,它为我提供了我需要的数据,但在两个单独的查询中。

【问题讨论】:

【参考方案1】:

SQL Server 2005+ 已交叉应用

SELECT t.guidID, IntID, Title, func.Name 
  FROM
     dbo.table1 o
     CROSS APPLY
     dbo.func1(o.guidID) func
 WHERE IntID = 1

编辑:行不通... 但是,假设您有一行 IntID = 1,您还可以交叉连接其他 DBMS/较旧的 SQL Server

SELECT t.guidID, IntID, Title, func.Name 
  FROM
     dbo.table1 o
    CROSS JOIN
    dbo.func1(o.guidID) func
 WHERE IntID = 1

【讨论】:

我收到一个错误:“'.' 附近的语法不正确。”对于第 5 行的 (o.guidID)。有什么建议吗?我一直在研究它,但似乎无法解决问题。 啊。您使用的是 SQL Server 2000,或者您的 db compat 级别为 80(或更低)。请使用我给的第二个表格 我在 SQL Server 2008 上,我不确定 db compat 级别是什么,因为谷歌搜索并没有告诉我太多。但是当我尝试运行第二种形式时,我得到了同样的错误。 ***.com/questions/1501596/… 我的第二种形式是错误的,对不起 好吧,我会继续玩 CROSS APPLY,因为我读到的所有关于它的内容似乎都指向这个应用程序。如果您对如何使我的脚本正常工作有任何其他想法,请告诉我!感谢您迄今为止的帮助。

以上是关于SQL 脚本帮助,将两个查询合二为一的主要内容,如果未能解决你的问题,请参考以下文章

将两个 T-SQL 数据透视查询合二为一

如何在一个脚本中使用 R 将 SQL 查询中的数据插入到单独的 SQL 查询中?

以下 7 个更新查询的 SQL 优化。同一张桌子。合二为一?

如何在 SQL 中组合两个查询? (子查询)

如何安排 sql 脚本并将数据导出到 IBM Netezza 中的特定位置

将 2 个查询合二为一