Sql server 2005 SQL Server存储过程-在选择查询中使用行计数
我的存储过程(SQL Server 2005)返回一个数据集,其中一个字段取决于查询返回的行数。我可以做一个简化的第一个查询,它允许我获取@ROWCOUNT,但在这种情况下,该过程返回两个集合,这不是我想要的 我尝试将第一个查询放在WITH语句中,但没有找到提取行计数并将其放在可用于第二个查询的变量中的语法。另一种方法是从第一个查询中获取@@ROWCOUNT,并告诉过程仅返回第二个查询的结果 也许有更好的方法可以做到这一点,但我在SQL方面的专业知识非常有限Sql server 2005 SQL Server存储过程-在选择查询中使用行计数,sql-server-2005,stored-procedures,rowcount,Sql Server 2005,Stored Procedures,Rowcount,我的存储过程(SQL Server 2005)返回一个数据集,其中一个字段取决于查询返回的行数。我可以做一个简化的第一个查询,它允许我获取@ROWCOUNT,但在这种情况下,该过程返回两个集合,这不是我想要的 我尝试将第一个查询放在WITH语句中,但没有找到提取行计数并将其放在可用于第二个查询的变量中的语法。另一种方法是从第一个查询中获取@@ROWCOUNT,并告诉过程仅返回第二个查询的结果 也许有更好的方法可以做到这一点,但我在SQL方面的专业知识非常有限 谢谢你的帮助 这就是你要找的吗?如果
谢谢你的帮助 这就是你要找的吗?如果没有,请您更详细地描述您的问题(可能是代码片段)
这就是你要找的吗?如果没有,请您更详细地描述您的问题(可能是代码片段)
是的,就是这样!谢谢!有“select@lastRowCount”的那一行就是为我做这件事的那一行。是的,就是它!谢谢!带有“select@lastRowCount”的那一行就是为我做这件事的那一行。
alter procedure ComplicatedStoredProcedure as
begin
declare @lastQueryRowCount int
-- Storing the number of rows returned by the first query into a variable.
select @lastQueryRowCount =
-- First resultset (not seen by caller).
(select count(*) from A where ID > 100)
-- Second resultset. This will be the actual result returned from the SP.
select * from B where SomeDependentField > @lastQueryRowCount
end