Sql 个人不介意你接受任何答案,只要它对你有用。谢谢。看到这篇文章是根据另一篇文章的评论编辑的,我想这两个答案都是正确的。我的错。这里还是新的。 TableA TableB ID |Value

Sql 个人不介意你接受任何答案,只要它对你有用。谢谢。看到这篇文章是根据另一篇文章的评论编辑的,我想这两个答案都是正确的。我的错。这里还是新的。 TableA TableB ID |Value ,sql,oracle,insert-into,Sql,Oracle,Insert Into,个人不介意你接受任何答案,只要它对你有用。谢谢。看到这篇文章是根据另一篇文章的评论编辑的,我想这两个答案都是正确的。我的错。这里还是新的。 TableA TableB ID |Value ID | Value | Other | Other -------------- --------------------------------- 1


个人不介意你接受任何答案,只要它对你有用。谢谢。看到这篇文章是根据另一篇文章的评论编辑的,我想这两个答案都是正确的。我的错。这里还是新的。
TableA                            TableB
ID    |Value                      ID    | Value   | Other | Other
--------------                   ---------------------------------
1     | ABC                       1     | ABC     | ****  | ****
2     | DFG                       2     | DFG     | ****  | ****
3     | HBO                       3     | HBO     | ****  | ****
    INSERT INTO TableB
(
    ID,
    Value, 
    Other, 
    Other
)
SELECT 
    ID, 
    (SELECT TABLEA.Value FROM TABLEA,TABLEB WHERE TABLEA.ID = TABLEB.ID),
    ******, 
    ******

FROM TableA
WHERE ID IN 
(
    SELECT 
        TABLEA.ID
    FROM
        TABLEA

    MINUS

    SELECT 
        TABLEB.ID 
    FROM
        TABLEB
)
MERGE INTO  TableB
USING   TableA
ON      (TableB.id = TableA.id) 
WHEN MATCHED
    THEN
        UPDATE
            SET TableB.VALUE = TableA.VALUE
WHEN NOT MATCHED
    THEN
        INSERT 
        (
            id, 
            POSITION,  
            other,    
            other, 
            other,   
            other, 
            other,
            VALUE
        )
        VALUES 
        (
            TableA.id,
            (
                SELECT POSITION
                FROM TableC
                WHERE something = '<String Value>'
                AND VALUE = 
                (
                    SELECT VALUE 
                    FROM TableA 
                    WHERE TableA.id = <The Current 'ID'> 
                ) , 
            )
            *****,    
            *****, 
            *****,    
            *****, 
            *****, 
            TableA.VALUE
        );
MERGE INTO TABLEB tgt
USING TABLEA src
    ON (tgt.ID = src.ID) 
WHEN MATCHED
    THEN
        UPDATE
        SET tgt.value = src.value
WHEN NOT MATCHED
    THEN
        INSERT (
            ID
            ,VALUE
            )
        VALUES (
            src.id
            ,src.value
            );
    INSERT INTO B 
       SELECT A.id, A.value  
         FROM A 
         FULL OUTER JOIN B ON A.id = B.id WHERE B.id IS NULL 
MERGE INTO TABLEB tgt
USING TABLEA src
    ON (tgt.ID = src.ID) 
WHEN MATCHED
   THEN
       UPDATE
       SET tgt.value = src.value
WHEN NOT MATCHED
    THEN
        INSERT (
            ID
            ,VALUE
            )
        VALUES (
            src.id
           ,src.value
           );
MERGE INTO  TableB
USING   TableA
ON      (TableB.id = TableA.id) 
WHEN MATCHED
    THEN
        UPDATE
            SET TableB.VALUE = TableA.VALUE
WHEN NOT MATCHED
    THEN
        INSERT 
        (
            id, 
            POSITION,  
            other,    
            other, 
            other,   
            other, 
            other,
            VALUE
        )
        VALUES 
        (
            TableA.id,
            (
                SELECT POSITION
                FROM TableC
                    WHERE something = '<String Value>'
                AND VALUE = TableA.VALUE
            ) as position,
            *****,    
            *****, 
            *****,    
            *****, 
            *****, 
            TableA.VALUE
        );
MERGE INTO  (SELECT * FROM TableB WHERE ID BETWEEN 1200 AND 1299) TableB 
USING   (SELECT * FROM TableA WHERE ID BETWEEN 1200 AND 1299) TableA 
ON      (TableB.id = TableA.id) 
WHEN MATCHED
    THEN
        UPDATE
            SET TableB.VALUE = TableA.VALUE
WHEN NOT MATCHED
    THEN
        INSERT 
        (
            id, 
            POSITION,  
            other,    
            other, 
            other,   
            other, 
            other,
            VALUE
        )
        VALUES 
        (
            TableA.id,
            (
                SELECT POSITION
                FROM TableC
                    WHERE something = '<String Value>'
                AND VALUE = TableA.VALUE
            ) as position,
            *****,    
            *****, 
            *****,    
            *****, 
            *****, 
            TableA.VALUE
        );