SQL将两行合并为一行

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

我正在尝试使用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,
           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);