首页 > 解决方案 > Sql server 循环记录

问题描述

我正在查询保险申请,它有保​​险计划。假设PlanA,PlanB,PlanC,PlanD

保险计划在数据库中,我可以使用选择查询直接获取它们。

Select PlanName as [Plan], ‘’ as Section from app.[Plan]

现在我有几个部分不在数据库“Protective”、“Effective”、“EasyClaim”的任何表中。

每个计划都有这 3 个部分,对于每个计划,我都希望有这 3 个部分。

如果有 3 个计划,那么我的查询需要返回 12 条记录,如下所示

PlanA Protective
PlanA Effective
PlanA EasyClaim
PlanB Protective

我能想到的一种方法是在我的proc中创建一个临时表并将这3个部分存储在该临时表中并与该临时表进行左连接,有更好的建议吗?

标签: sql-serverstored-procedures

解决方案


VALUES如果我理解你所说的正确的话,似乎你只需要一个表结构:

SELECT P.PlanName
       V.Section
FROM app.Plan P
     CROSS APPLY (VALUES('Protective'),('Effective'),('EasyClaim'))V(Section);

推荐阅读