sql-server - 使用新插入的分组行的 ID 更新分组行
问题描述
我想对表 A 的几行进行分组,并为每一组分组的行在表 B 中插入一个新行。接下来,我想用新插入的行的 ID 更新表 A 的行。
使用 'grouplines' 将行插入表中就像:
INSERT INTO B(...,...,...)
SELECT col1, col2 FROM A
GROUP BY col1,col2
这将在表 B 中生成一个 ID 列表。我想用表 B 的相应组行的 ID 更新表 A 的行。
有可能这样做吗?
一些样本数据:
分组表 B 后如下所示:
然后表 A 应如下所示:
解决方案
事实上,您的查询可能会插入多行。
我认为一种解决方案将使用两个查询:首先从表 a 中插入表 b,使用表 b 中新创建的 id 更新表 a。
INSERT INTO B(col1, col2, col3)
SELECT DISTINCT col1, col2, col3 FROM A
UPDATE A
SET A.B_ID = B.B_ID
FROM A
INNER JOIN B
ON A.col1 = B.col1
AND A.col2 = B.col2
AND A.col3 = B.col3
推荐阅读
- python - AttributeError: __delete__ 使用 %matplotlib 小部件在 jupyter 实验室中保存图形时
- c# - 使用 C# 和 Word 互操作将 Word 导出为 PDF 不会将链接导出到文档中的书签
- excel - microsoft excel 安全通知弹出窗口和 excel 2013 中的消息栏有什么区别?
- c - arduino 从串行 rs232 中读取十六进制
- javascript - 从 Date() 设置输入字段占位符
- angular - Nodejs Httpclient JSONP:未定义jsonCallback
- c++ - 什么是相对顺序,stable_partition 有什么作用?
- reactjs - 我可以在蚂蚁设计的速率组件中添加边框吗?
- reactjs - 从预先存在的模板在 React 中创建计算器
- android - xamarin 条码扫描与手电筒