如何将两个结果作为单个表获得

时间:2014-04-11 11:53:32

标签: sql sql-server function merge

我有两个结果集enter image description here 我希望两个结果都是一个包含两列(教育,学校)的单一表格。我可以使用任何临时表或有任何简单的方法吗? 谢谢

编辑 enter image description here

2 个答案:

答案 0 :(得分:1)

如果您有使用关系,那么您可以正常加入表格:

WITH Eduction AS
(   SELECT  item,
            ID = ROW_NUMBER() OVER(ORDER BY Item)
    FROM    fnSplit((SELECT DegreeType FROM HR_EmpEducation WHERE EmpID = 9), '|')
), Schools AS
(   SELECT  item,
            ID = ROW_NUMBER() OVER(ORDER BY Item)
    FROM    fnSplit((SELECT School_Inst FROM HR_EmpEducation WHERE EmpID = 9), '|')
)   
SELECT  Eduration = ISNULL(e.Item, ''),
        Schools = ISNULL(s.Item, '')
FROM    Education e
        FULL JOIN Schools s
            ON e.ID = s.ID;

我使用了一个FULL JOIN来说明一个分割函数的结果比另一个更多。

答案 1 :(得分:0)

组合记录是没有意义的,因为源表中的单个记录可能具有不同数量的学位和制度。结果表格没有意义。

只需将信息保留在单独的表格中即可。为了使这些表彼此关联,使每个原始查询也获得识别信息(例如个人ID)。然后,您将能够使用此信息链接回数据所代表的个人。