两个表中存在的字段应该存在于新视图中的一个字段下。我在这里找到了一些帖子,而另一个我已经忘记了建议使用UNION
和FULL OUTER JOIN
做我想做的事情,但我对此很陌生,答案有点令人困惑。我想我需要从中选择所有不发生冲突的字段,然后从组合了表共有的所有字段的语句中选择其余的data
字段,但是如何发挥作用呢?elong
UNION ALL
FULL OUTER JOIN
我认为FULL OUTER JOIN
需要保持视图中的行数与每个表中的行数之和相同,但我不太确定。
也许这是我的解决方案?我不确定 aCROSS JOIN
将如何与类似的字段一起使用。
对于那些关心我如何加入这些的人,我试图从两个表中取出每一行并将它们放在一个新视图中。我的问题是由重复的字段(c2、footnote1、footnote2 等)引起的。我希望它们保持为 c2、footnote1、footnote2,但它们会不断接收生成的别名。任何属于 c2 的东西都是 c2,无论它来自哪张纸。
编辑:感谢下面的答案,这就是我现在正在写的,这似乎是我想要的。由于字段的数量,它需要很长时间;有一个更好的方法吗?更自动的东西?
Edit2:这是完整查询的样子,以防将来对某人有所帮助。我希望有一种更自动的方法来做到这一点,因为这需要一些时间。感谢所有帮助过的人!
SELECT ID, tableNum, UTC, colNum, c1, c2, null AS c3, c4, colRow, footnote1, footnote2, footnote3, footnote4,
property, orientation, specimenDesign, exposTempMinF AS exposTempFMin, exposTempMaxF AS exposTempFMax,
exposTempRTMinF AS exposTempFRTMin, exposTempRTMaxF AS exposTempFRTMax, designValueRoomTempF_A,
designValueRoomTempF_T99 , designValueRoomTempF_B ,
designValueRoomTempF_S , designValueRoomTempF_Typical, designValueRoomTempF_Estimate,
designValueRoomTempF_Units , conversionFactor, null AS form, null AS thickRangeInMin, null AS thickRangeInMax,
null AS widthRangeInMin, null AS widthRangeInMax, null AS areaInSqrMin, null AS areaInSqrMax, note
FROM dbo.[DesignAllowables-Data] AS data
UNION ALL
SELECT ID, tableNum, UTC, colNum, null, c2, c3 , null, colRow, footnote1, footnote2, null , null ,
property, orientation, specimenDesign, exposTempF_min AS exposTempFMin, exposTempF_max AS exposTempFMax,
exposTempRTF_min AS exposTempFRTMin, exposTempRTF_max AS exposTempFRTMax, designValueRTF_A AS designValueRoomTempF_A,
designValueRTF_T99 AS designValueRoomTempF_T99, designValueRTF_B AS designValueRoomTempF_B,
designValueRTF_S AS designValueRoomTempF_S, null , null ,
designValueRTF_Units AS designValueRoomTempF_Units, conversionFactor, form , thickRangeInMin , thickRangeInMax,
widthRangeInMin , widthRangeInMax , areaInSqrMin , areaInSqrMax , note
From dbo.[DesignAllowables-Elong-RA] AS elong