sql - 如何在 Microsoft SQL Server 中合并这 3 个表
问题描述
我有三张桌子:
表格1:
pk c1
-------
1 1
2 1
3 1
表2:
pk c2
---------
3 1
4 1
5 1
表3:
pk c3
---------
6 1
7 1
8 1
我将如何附加或联合这三个表看起来像这个表?
pk c1 c2 c3
---------------
1 1 0 0
2 1 0 0
3 1 0 0
4 0 1 0
5 0 1 0
6 0 1 0
7 0 0 1
8 0 0 1
9 0 0 1
当我现在使用 union 语句时,SQL Server 会吐出 2 列。
select * from #table1
union
select * from #table2
union
select * from #table3
解决方案
只需为不在每个表中的列提供 0 值:
select pk, c1, 0 as c2, 0 as c3
from t1
union all
select pk, 0 as c1, c2, 0 as c3
from t1
union all
select pk, 0 as c1, 0 as c2, c3
from t1;
推荐阅读
- c++ - 为什么调试时没有显示控制台窗口
- angular - 按过滤器角度比较 2 个数组
- reactjs - 尝试将更新的状态传递给组件时如何修复 mapStateToProps 未定义?
- laravel - Laravel 背包中的关系 - 不确定我是否理解
- c++ - 没有连续 1 的位串,使用自顶向下 DP
- python - MacOS Catalina,pip 已安装包但 python 找不到它们?
- wordpress - 如何在 WordPress Post 中上传 Web 记录 Base64 Wave 音频文件(前端形式)
- html - 无法拖放任何链接到如果某些链接已经粘贴到前
- java - 休眠不设置外键
- c# - 如果您不需要强制转换,并且需要检查对象的最具体(运行时)类型,哪个更快?.GetType() & typeof(),还是运算符?