You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2014如何查询ProductsCheckin与AccessoriesCheckin全量数据?

合并两张表所有行的解决方案(SQL Server 2014)

当然可以实现!在SQL Server 2014中,我们可以通过UNION ALL语句来合并ProductsCheckin和AccessoriesCheckin两张表的所有行数据,具体分两种场景处理:

场景1:两张表结构完全一致

如果两张表的列名、数据类型、列顺序完全匹配,直接使用UNION ALL即可,它会保留所有行(包括重复行),比不带ALL的UNION效率更高(因为不需要额外做去重检查):

SELECT * FROM ProductsCheckin
UNION ALL
SELECT * FROM AccessoriesCheckin;

场景2:两张表结构不同

如果两张表的列数、列名或数据类型不匹配,你需要手动对齐列,为缺失的列补充NULL(或符合业务逻辑的默认值),并统一列别名:

举个例子,假设ProductsCheckin有ID, ProductName, CheckinDate三列,AccessoriesCheckin有ID, AccessoryName, CheckinTime, Supplier四列,我们可以这样写:

-- 从ProductsCheckin取数,补全缺失的Supplier列
SELECT 
    ID,
    ProductName AS ItemName,
    CheckinDate AS CheckinTime,
    NULL AS Supplier
FROM ProductsCheckin

UNION ALL

-- 从AccessoriesCheckin取数,对应列对齐
SELECT 
    ID,
    AccessoryName AS ItemName,
    CheckinTime,
    Supplier
FROM AccessoriesCheckin;

注意事项

  • 确保对应位置的列数据类型兼容,比如不能把字符串类型和整数类型放在同一列,否则会触发类型不匹配的报错;
  • 如果需要合并后自动去除重复行,可以把UNION ALL换成UNION,但会牺牲一定性能;
  • 尽量避免使用SELECT *,尤其是结构不同的表,手动指定列名更安全,也便于后续维护。

内容的提问来源于stack exchange,提问作者Vitor Moscolini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:18:49