SQL将两行合并为一行
我正在尝试使用SQL将SQL中的两行合并为一行,并使用新的ID号SQL将两行合并为一行,sql,Sql,我正在尝试使用SQL将SQL中的两行合并为一行,并使用新的ID号 ID Amount ------------ 1 100 2 200 3 300 4 400 5 500 6 600 进入 谢谢你的帮助。退房。我不确定您的目标,但我认为您需要定义一个SQL过程。我已经有一段时间没有这么做了,但应该是这样的: CREATE OR REPLACE PROCEDURE combine( ID1 IN <TABLE_NAME>.ID%TYPE
ID Amount
------------
1 100
2 200
3 300
4 400
5 500
6 600
进入
谢谢你的帮助。退房。我不确定您的目标,但我认为您需要定义一个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;
/
根据什么?您是在进行查询还是数据更新?您的意思是删除两个已知行,然后插入一个具有新id的求和行吗?或者仅从表中选择预期结果?请指定您希望生成的数据,因为您的问题包含的信息不足,无法回答
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);