SQL Azure存储过程多个结果集
我正在为初始页面加载创建一个存储过程,因此有两个不同的查询和结果集 第一个查询作为嵌套的SQL Azure存储过程多个结果集,sql,stored-procedures,subquery,azure-sql-database,Sql,Stored Procedures,Subquery,Azure Sql Database,我正在为初始页面加载创建一个存储过程,因此有两个不同的查询和结果集 第一个查询作为嵌套的SELECT在第二个查询中完全重复 然后我的问题是,是将第一个查询的结果放入表var中,还是在第二个查询中基本上复制代码/查询 提前谢谢 --Get Most Popular Sports for each country SELECT dbo.Countries2Sports.rank, dbo.Countries2Sports.SportName,
SELECT
在第二个查询中完全重复
然后我的问题是,是将第一个查询的结果放入表var中,还是在第二个查询中基本上复制代码/查询
提前谢谢
--Get Most Popular Sports for each country
SELECT
dbo.Countries2Sports.rank,
dbo.Countries2Sports.SportName,
dbo.Countries2Sports.imageURL,
dbo.Countries2Sports.imageALTtext
FROM
dbo.Countries2Sports
WHERE
dbo.Countries2Sports.CountryCode = @CountryCode
ORDER BY
dbo.Countries2Sports.rank ASC
--Get Organizations related to each country's sports
SELECT
dbo.Countries2Organizations.ID,
dbo.Countries2Organizations.OrganizationCode,
dbo.Countries2Organizations.OrganizationName,
dbo.Countries2Organizations.LogoURL,
dbo.Countries2Organizations.Sport
FROM
dbo.Countries2Organizations
WHERE
dbo.Countries2Organizations.Sport IN
(
SELECT
dbo.Countries2Sports.SportName
FROM
dbo.Countries2Sports
WHERE
dbo.Countries2Sports.CountryCode = @CountryCode
)
AND (dbo.Countries2Organizations.CountryCode = @CountryCode OR
dbo.Countries2Organizations.CountryCode = '')
如果您不想在输出中使用结果集,则可以使用CTE,如果记录数较低,则CTE将优于temp表格,如下所示:
;WITH CTE AS (
SELECT
dbo.Countries2Sports.rank,
dbo.Countries2Sports.SportName,
dbo.Countries2Sports.imageURL,
dbo.Countries2Sports.imageALTtext
FROM
dbo.Countries2Sports
WHERE
dbo.Countries2Sports.CountryCode = @CountryCode
--ORDER BY
-- dbo.Countries2Sports.rank ASC
)
--Get Organizations related to each country's sports
SELECT
dbo.Countries2Organizations.ID,
dbo.Countries2Organizations.OrganizationCode,
dbo.Countries2Organizations.OrganizationName,
dbo.Countries2Organizations.LogoURL,
dbo.Countries2Organizations.Sport
FROM
dbo.Countries2Organizations
WHERE
dbo.Countries2Organizations.Sport IN
(
SELECT
dbo.Countries2Sports.SportName
FROM
CTE
)
AND ( dbo.Countries2Organizations.CountryCode = @CountryCode OR dbo.Countries2Organizations.CountryCode = '')
如果您不想在输出中使用结果集,则可以使用CTE,如果记录数较低,则CTE将优于temp表格,如下所示:
;WITH CTE AS (
SELECT
dbo.Countries2Sports.rank,
dbo.Countries2Sports.SportName,
dbo.Countries2Sports.imageURL,
dbo.Countries2Sports.imageALTtext
FROM
dbo.Countries2Sports
WHERE
dbo.Countries2Sports.CountryCode = @CountryCode
--ORDER BY
-- dbo.Countries2Sports.rank ASC
)
--Get Organizations related to each country's sports
SELECT
dbo.Countries2Organizations.ID,
dbo.Countries2Organizations.OrganizationCode,
dbo.Countries2Organizations.OrganizationName,
dbo.Countries2Organizations.LogoURL,
dbo.Countries2Organizations.Sport
FROM
dbo.Countries2Organizations
WHERE
dbo.Countries2Organizations.Sport IN
(
SELECT
dbo.Countries2Sports.SportName
FROM
CTE
)
AND ( dbo.Countries2Organizations.CountryCode = @CountryCode OR dbo.Countries2Organizations.CountryCode = '')
您介意分享存储产品的代码吗?解释使用的汽车会有帮助。你介意分享储存的产品代码吗?解释一下用过的车会有帮助的。谢谢。老实说,我不知道我是否需要不同的结果集——目前,第一个结果集填充一组图标,而第二个结果集填充网页的一个完全不同的组件。因此,在我缺乏经验的眼中,组合结果集似乎是前端解析的额外工作。谢谢老实说,我不知道我是否需要不同的结果集——目前,第一个结果集填充一组图标,而第二个结果集填充网页的一个完全不同的组件。因此,在我缺乏经验的眼中,组合结果集似乎是前端解析的额外工作。