合并两个 sql 查询而不使用 sql 变量
Combine two sql queries with no use of sql variables
这听起来像是一个奇怪的请求,但根据我们在本网站上的专家,我知道我们可以为此提出解决方案。
所以我有一个看起来像这样的存储过程 http://pastebin.com/ZTgxG3SB
我正在尝试将其转换为简单的 sql 语句,而不使用任何临时表和 sql 变量。我需要在仅支持标准 sql 语句且不支持临时表和 sql 变量的工具中使用查询。
在存储过程中,它接受一个 SKU 作为输入参数。 SP 的第一部分为给定的 SKU 收集最多 6 个兄弟并将它们保存在变量中,然后它执行另一个 sql,它收集原始和兄弟的商店信息和库存。我想做的是将两个查询合并为一个,但由于我的 sql 知识有限,所以不确定如何操作。我的想法是,开始第二个 sql,在我放置兄弟数量的部分,只需要一个子查询,select 每个兄弟按优先顺序排列。
这非常重要,非常感谢对此提供的帮助。事实上,如果你是本地人,我会带你出去吃午饭 :)
有一堆有效重复的代码。所以你可以改变每一个:
sib1.product_code = @SIB1
至:
sib1.product_code in (SELECT SKU FROM @TempTbl WHERE RowID = 1)
这将消除单个变量查找并让您找到两个查询的目标(一个用于创建 @TempTbl
,然后是最终查询)。
您可以更进一步,使用 SQL Server Common Table Expression 而不是创建 @TempTbl
。
这听起来像是一个奇怪的请求,但根据我们在本网站上的专家,我知道我们可以为此提出解决方案。 所以我有一个看起来像这样的存储过程 http://pastebin.com/ZTgxG3SB 我正在尝试将其转换为简单的 sql 语句,而不使用任何临时表和 sql 变量。我需要在仅支持标准 sql 语句且不支持临时表和 sql 变量的工具中使用查询。
在存储过程中,它接受一个 SKU 作为输入参数。 SP 的第一部分为给定的 SKU 收集最多 6 个兄弟并将它们保存在变量中,然后它执行另一个 sql,它收集原始和兄弟的商店信息和库存。我想做的是将两个查询合并为一个,但由于我的 sql 知识有限,所以不确定如何操作。我的想法是,开始第二个 sql,在我放置兄弟数量的部分,只需要一个子查询,select 每个兄弟按优先顺序排列。
这非常重要,非常感谢对此提供的帮助。事实上,如果你是本地人,我会带你出去吃午饭 :)
有一堆有效重复的代码。所以你可以改变每一个:
sib1.product_code = @SIB1
至:
sib1.product_code in (SELECT SKU FROM @TempTbl WHERE RowID = 1)
这将消除单个变量查找并让您找到两个查询的目标(一个用于创建 @TempTbl
,然后是最终查询)。
您可以更进一步,使用 SQL Server Common Table Expression 而不是创建 @TempTbl
。