SQL 将两行合二为一
Posted
技术标签:
【中文标题】SQL 将两行合二为一【英文标题】:SQL Combine two rows into one 【发布时间】:2016-05-19 04:05:10 【问题描述】:我正在尝试使用 SQL 将 SQL 中的两行与新 ID 号合并为一
ID Amount
------------
1 100
2 200
3 300
4 400
5 500
6 600
进入
ID Amount
-------------
1 100
2 200
101 700
5 500
6 600
感谢您的帮助。
【问题讨论】:
基于什么?您是在查询还是更新数据? 您的意思是删除两已知行,并插入一sum
行和新id
吗?或者只是从表格中选择预期的结果?
请指定您希望生成的数据,因为您的问题包含的信息不足以回答
【参考方案1】:
查看SQL Procedures。我不确定您的目标,但我认为您需要定义一个 SQL 过程。自从我这样做以来已经有一段时间了,但它应该是这样的:
CREATE OR REPLACE PROCEDURE combine(
ID1 IN <TABLE_NAME>.ID%TYPE,
ID2 IN <TABLE_NAME>.ID%TYPE,
NEWID IN <TABLE_NAME>.ID%TYPE)
IS
BEGIN
INSERT INTO <TABLE_NAME> (ID, Amount) VALUES(NEWID, ((SELECT Amount FROM <TABLE_NAME> WHERE ID=ID1) + (SELECT Amount FROM <TABLE_NAME> WHERE ID=ID2)));
DELETE FROM <TABLE_NAME> WHERE ID = ID1;
DELETE FROM <TABLE_NAME> WHERE ID = ID2;
COMMIT;
END;
/
要获得您描述的状态,您可以调用例程
combine(4, 5, 101);
【讨论】:
以上是关于SQL 将两行合二为一的主要内容,如果未能解决你的问题,请参考以下文章