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

如何修改MS SQL插入语句,将单条源数据拆分为两条插入目标表

解决方案

你可以通过UNION ALL拼接两个查询结果,为每条源记录生成两条目标记录,这是所有主流SQL数据库都支持的通用写法:

INSERT INTO OutputTable (CaseKey, Note, LastModifiedBy, LastModifiedDate)
-- 第一条记录:提取Note1字段内容
SELECT CaseID, Note1, UpdatedBy, UpdatedDate
FROM InputTable
UNION ALL
-- 第二条记录:提取Note2字段内容
SELECT CaseID, Note2, UpdatedBy, UpdatedDate
FROM InputTable

如果使用的是支持CROSS APPLY的数据库(比如SQL Server、Azure SQL),还可以用更简洁的行转列思路实现:

INSERT INTO OutputTable (CaseKey, Note, LastModifiedBy, LastModifiedDate)
SELECT 
    t.CaseID, 
    n.NoteContent, 
    t.UpdatedBy, 
    t.UpdatedDate
FROM InputTable t
CROSS APPLY (
    VALUES 
        (t.Note1), 
        (t.Note2)
) n(NoteContent)

补充说明

  • 优先使用UNION ALL而非UNION,因为不需要去重处理,性能更高效
  • 第二种写法里,CROSS APPLY会将每条源记录与VALUES中的两个字段值配对,自动生成两条目标记录

内容的提问来源于stack exchange,提问作者Jonathan Small

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 02:05:01