【问题标题】:SQL Combine two rows into oneSQL 将两行合二为一
【发布时间】: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吗?或者只是从表格中选择预期的结果?
  • 请指定您希望生成的数据,因为您的问题包含的信息不足以回答

标签: sql


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-25
    • 2016-11-28
    • 1970-01-01
    • 1970-01-01
    • 2021-05-22
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多