sql-server - 与不同列的 UNION

标签 sql-server

表A

ID    Name    Age
1     John       22

表B

ID   Name
5    Erik

我想要像这样的结果

ID    Name    Age
1     John    22
5     Erik    

当我执行 UNION 时给出错误

“使用 UNION、INTERSECT 或 EXCEPT 运算符组合的所有查询在其目标列表中必须具有相同数量的表达式。”

如何得到想要的结果?

最佳答案

您可以提供一个虚拟列来代替返回 NULL 的缺失列,如下所示。

SELECT ID,
       Name,
       Age
FROM   TABLE_A
UNION ALL
SELECT ID,
       Name,
       NULL
FROM   TABLE_B  

关于sql-server - 与不同列的 UNION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7791525/

相关文章:

sql - 当您不知道上限时如何使用聚合案例语句而不是 PIVOT?

Node.js + Sequelize + SQL Server

c# - 使用 SimpleMembership/Sql Server CE、MongoDB 管理用户配置文件

c# - 如何从 EF LINQ 查询调用数据库函数?

sql-server - Access 从 SQL Server 截断我的 Decimal 值的链接表

sql - 如何使用OUTPUT捕获新旧ID?

c# - 不使用 PIVOT 以逗号分隔的字符串形式查询结果?

sql-server - 时间戳精度 - 获得毫秒数

sql-server - 数据一直在变化(SQL Server Management Studio)

sql-server - 这是原子更新吗?为什么方法更好