是否可以将选择查询的结果存储在存储过程中,然后使用存储过程中的这些结果来进一步查询结果集?
示例 //我的存储过程(简化示例)
ALTER PROCEDURE [dbo].[users]
AS
BEGIN
Declare @users nvarchar(1000)
set @users = select * from users
// query @users result for counts, sums where clauses, etc...
END
最佳答案
您希望 users
是表变量或临时表,而不是 nvarchar 类型。
表变量版本
DECLARE @users TABLE (
UserId int,
...
)
INSERT INTO @users
(UserId, ...)
SELECT *
FROM users
SELECT *
FROM AnotherTable t
INNER JOIN @users u
ON ...
临时表版本
CREATE TABLE #users (
UserId int,
...
)
INSERT INTO #users
(UserId, ...)
SELECT *
FROM users
SELECT *
FROM AnotherTable t
INNER JOIN #users u
ON ...
您还可以隐式创建临时表。
SELECT *
INTO #users
FROM users
SELECT *
FROM AnotherTable t
INNER JOIN #users u
ON ...
关于sql - 在存储过程中存储并使用选择语句结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7533153/