【问题标题】:How to get two results as single table如何将两个结果作为单个表获得
【发布时间】:2014-04-11 11:53:32
【问题描述】:

我有两个结果集 我希望将这两个结果作为一个包含两列(教育、学校)的表。我可以使用任何临时表还是有什么简单的方法? 谢谢

已编辑

【问题讨论】:

  • 对不起..你误解了我的要求??我想要一个有两列的表格
  • 你的输出应该有多少行?当您组合它们时,两个输出之间没有逻辑链接,即拥有|MCA | SGSITS INDORE| 并不比拥有|MCA | MP BOARD BHOPAL| 更正确。如果没有逻辑关系,您将得到笛卡尔积,因此最终(在这种情况下)有 16 行。
  • 如果我在两个结果中都有关系,是否可行?检查我编辑的图像

标签: sql sql-server function merge


【解决方案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 来说明一个拆分函数的结果比另一个函数多。

【讨论】:

    【解决方案2】:

    合并记录没有意义,因为源表中的单个记录可能具有不同数量的学位和机构。结果表没有意义。

    只需将信息放在单独的表格中即可。要将这些表相互关联,请使每个原始查询也获取标识信息(例如个人的 ID)。然后,您将能够使用此信息链接回数据所代表的个人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-24
      • 1970-01-01
      • 1970-01-01
      • 2013-12-13
      • 1970-01-01
      • 1970-01-01
      • 2014-06-03
      相关资源
      最近更新 更多