Swapping column values in Oracle

前端 未结 3 1608
再見小時候
再見小時候 2021-02-19 10:25

I was solving one of the puzzles and came across swapping column values using DML queries:

SELECT * FROM TEMP_TABLE;
ID1, ID2
--------
20, 15
20, 15
20, 15


        
相关标签:
3条回答
  • 2021-02-19 11:04

    There's no need to have three update statements, one is sufficient:

    UPDATE temp_table_new 
    SET    id1 = id2, 
           id2 = id1; 
    
    0 讨论(0)
  • 2021-02-19 11:09

    Before:

    select * from employ;
    
    EMPNO FNAME      LNAME
    ----- ---------- ----------
     1001 kiran      kumar
    
     1002 santosh    reddy
    
    
    update employ e set fname=(select lname from employ where empno=e.empno),
                        lname=(select fname from employ where empno=e.empno);
    

    After:

     select * from employ;
    
     EMPNO FNAME      LNAME
    ------ ---------- ----------
      1001 kumar      kiran
    
      1002 reddy      santosh
    
    0 讨论(0)
  • 2021-02-19 11:12
    CREATE TABLE Names
    (
    F_NAME VARCHAR(22),
    L_NAME VARCHAR(22)
    );
    
    INSERT INTO Names VALUES('Ashutosh', 'Singh'),('Anshuman','Singh'),('Manu', 'Singh');
    
    UPDATE Names N1 , Names N2 SET N1.F_NAME = N2.L_NAME , N1.L_NAME = N2.F_NAME 
    WHERE N1.F_NAME = N2.F_NAME;
    
    SELECT * FROM Names;
    
    0 讨论(0)
提交回复
热议问题