将数据从一个表连接到另一个表

录像机

我想将数据从表1整理到表2

表格1

id        grp_name
-----------------------------
1       A@erf,[email protected]
2       [email protected],[email protected]/[email protected]
3       [email protected],[email protected],[email protected]
4       [email protected]#[email protected]
5       [email protected]

表2

code       name
-----------------------------------
1        [email protected],[email protected]
2        [email protected]
3        [email protected]
4        [email protected]
5        [email protected]
6        [email protected]

我想将grp_name数据与名称数据(例如,使用逗号(',')concanate)连接起来,而grp_name数据具有不需要的符号,例如,“#”,“ /”,我也希望消除它们。

我创建了以下过程,但我不知道我是否有效。如果仅使用简单的update语句或merge语句是可能的,请告诉我。

异常结果

code       name
1        [email protected],[email protected],A@erf,[email protected]
2        [email protected],[email protected],[email protected],[email protected]
3        [email protected],[email protected],[email protected],[email protected]
4        [email protected],[email protected],[email protected]
5        [email protected],[email protected]
6        [email protected]
CREATE OR REPLACE PROCEDURE procedure1
AS

    CURSOR cur
    IS
    SELECT id, grp_name
    FROM TABLE 1;
    
    CURSOR cur2
    IS
    SELECT code, name
    FROM TABLE 2;
    
      v_a       VARCHAR2(300);
 v_b       VARCHAR2(25);
 v_c    VARCHAR2(4000);
 v_d       VARCHAR2(250);

BEGIN

    FOR i IN cur
    LOOP
        v_a := ','||i.grp_name;
        v_b := i.id;
        
        FOR e IN cur2
        LOOP
            v_c := e.name || v_a ;
            v_d := i.code;
        
    
        UPDATE schema_name.TABLE 2
        SET name = v_c
        WHERE v_d = v_b;
        
        END LOOP;
    END LOOP;
    
--  COMMIT;
END;
亲和力

在最简单的情况下,如@jarlh所说,您可以进行更新:

update table2
    set name = name 
            || (select ',' || regexp_replace(grp_name, '[/#]', ',') -- replace / and # with ,
                from table1
                where table1.id = table2.code)
where code in (select id from table1); -- only update matching rows

最后一行不是严格必要的,但是最好避免不必要的更新。

如果在TABLE1中还有要添加的表2中不匹配的行,请使用插入:

insert into table2 (code, name)
    select id, regexp_replace(grp_name, '[/#]', ',')
    from table1
    where id not in (select code from table2);

编辑:就像Gordon提到的那样,如果您这样存储数据,则使用SQL会更轻松:

code       name
1        [email protected]
1        [email protected]
1        A@erf
1        [email protected]
2        [email protected]
2        [email protected]
2        [email protected]
2        [email protected]
3        [email protected]
3        [email protected]
3        [email protected]
3        [email protected]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将DISTINCT值从一个表连接到另一个表

来自分类Dev

SQL 将一个表的数据连接到另一个

来自分类Dev

msaccess将最近匹配的记录从一个表连接到另一个表

来自分类Dev

将数据从一个表复制到另一个表

来自分类Dev

将数据从一个表输入到另一个表

来自分类Dev

将数据从一个表追加到另一个表

来自分类Dev

将数据从一个表拉到另一个表

来自分类Dev

将表连接到另一个表然后再连接到自己

来自分类Dev

将分层数据连接到 R 中的另一个表

来自分类Dev

将数据从一个hbase表复制到另一个

来自分类Dev

将数据从一个MySQL表移动到另一个

来自分类Dev

将数据从一个hbase表复制到另一个

来自分类Dev

将数据从一个mysql表移动到另一个

来自分类Dev

将数据从一个MySQL表移动到另一个

来自分类Dev

连接表或将值从一个表映射到另一个表

来自分类Dev

将表值从一个表插入到另一个表

来自分类Dev

从一个表中选择数据并将另一个表连接为主“键”是相当缓慢的

来自分类Dev

如何将数据从一个表转移到另一个2个表

来自分类Dev

HQL连接到另一个表

来自分类Dev

Oracle数据库,将数据从一个表更新到另一个表

来自分类Dev

将数据从一个表复制到另一个数据库中的另一个表

来自分类Dev

无法将路线从一个蓝图连接到另一个

来自分类Dev

Oracle 连接到一个表或另一个表

来自分类Dev

将单个表的单列连接到另一个表的多列

来自分类Dev

根据Mysql Case语句将一个表连接到另一个表

来自分类Dev

如何将一个表中的最新行连接到另一个表MYSQL

来自分类Dev

将一个表中的行集合连接到另一个表的列 - SQL Server

来自分类Dev

将一个表两次内部连接到另一个表 - sqlite

来自分类Dev

如何使用联接将值从一个表链接到另一个表

Related 相关文章

  1. 1

    将DISTINCT值从一个表连接到另一个表

  2. 2

    SQL 将一个表的数据连接到另一个

  3. 3

    msaccess将最近匹配的记录从一个表连接到另一个表

  4. 4

    将数据从一个表复制到另一个表

  5. 5

    将数据从一个表输入到另一个表

  6. 6

    将数据从一个表追加到另一个表

  7. 7

    将数据从一个表拉到另一个表

  8. 8

    将表连接到另一个表然后再连接到自己

  9. 9

    将分层数据连接到 R 中的另一个表

  10. 10

    将数据从一个hbase表复制到另一个

  11. 11

    将数据从一个MySQL表移动到另一个

  12. 12

    将数据从一个hbase表复制到另一个

  13. 13

    将数据从一个mysql表移动到另一个

  14. 14

    将数据从一个MySQL表移动到另一个

  15. 15

    连接表或将值从一个表映射到另一个表

  16. 16

    将表值从一个表插入到另一个表

  17. 17

    从一个表中选择数据并将另一个表连接为主“键”是相当缓慢的

  18. 18

    如何将数据从一个表转移到另一个2个表

  19. 19

    HQL连接到另一个表

  20. 20

    Oracle数据库,将数据从一个表更新到另一个表

  21. 21

    将数据从一个表复制到另一个数据库中的另一个表

  22. 22

    无法将路线从一个蓝图连接到另一个

  23. 23

    Oracle 连接到一个表或另一个表

  24. 24

    将单个表的单列连接到另一个表的多列

  25. 25

    根据Mysql Case语句将一个表连接到另一个表

  26. 26

    如何将一个表中的最新行连接到另一个表MYSQL

  27. 27

    将一个表中的行集合连接到另一个表的列 - SQL Server

  28. 28

    将一个表两次内部连接到另一个表 - sqlite

  29. 29

    如何使用联接将值从一个表链接到另一个表

热门标签

归档