【发布时间】:2017-12-31 22:06:41
【问题描述】:
我有一个要求,我需要将子数据分成多条记录。下面,我试图通过一些示例日期让您理解 因为我不应该发布原始数据。在每个 ParentId 的以下数据中,我们可能有多个子记录。所以,现在 我们需要在单独的列中显示每条记录,其中包含 3 个子数据及其对应的父 ID,如下面的预期输出所示。 即使我们得到了游标,我们也尝试过,但它正在消磨执行时间,而且我们也考虑过使用 pivot 并且看起来它变得非常复杂,我不确定它是否可以工作。 任何帮助或方法将不胜感激。在此先感谢。
父表
SELECT * into #Parent FROM (
SELECT 1 PARENTID,'A' PARENTNAME
UNION ALL
SELECT 2,'B'
UNION ALL
SELECT 3,'C'
UNION ALL
SELECT 4,'D'
) AS A
子表
SELECT * INTO #Child from (
SELECT 10 as CHILDID,1 as PARENTID ,'DEF' AS CHILDNAME
union all
SELECT 11 , 1,'EFG'
UNION ALL
SELECT 12,1,'GHI'
UNION ALL
SELECT 13,1,'JKL'
UNION ALL
SELECT 14,1,'MNO'
UNION ALL
SELECT 15,1,'PQR'
UNION ALL
SELECT 20,2,'ACE'
UNION ALL
SELECT 30,3,'STU'
UNION ALL
SELECT 31,3,'VWX'
UNION ALL
SELECT 32,3,'WXY'
UNION ALL
SELECT 33,3,'XYZ'
)as a
SELECT * FROM #Parent
SELECT * FROM #CHILD
预期结果:
PARENTID Child1Name Child2Name Child3Name
1 DEF EFG GHI
1 JKL MNO PQR
2 ACE NULL NULL
3 STU VWX WXY
3 XYZ NULL NULL
【问题讨论】:
标签: sql sql-server sql-server-2008