Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

Oracle:ORDER BY क्लॉज के संयोजन के साथ ROWNUM का उपयोग करके तालिका कॉलम को अपडेट करना

यह काम करना चाहिए (मेरे लिए काम करता है)

update table_a outer 
set sequence_column = (
    select rnum from (

           -- evaluate row_number() for all rows ordered by your columns
           -- BEFORE updating those values into table_a
           select id, row_number() over (order by column1, column2) rnum  
           from table_a) inner 

    -- join on the primary key to be sure you'll only get one value
    -- for rnum
    where inner.id = outer.id);

या आप MERGE . का उपयोग करें बयान। कुछ इस तरह।

merge into table_a u
using (
  select id, row_number() over (order by column1, column2) rnum 
  from table_a
) s
on (u.id = s.id)
when matched then update set u.sequence_column = s.rnum


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle डायनेमिक DESC और ASC क्रम में

  2. PL/SQL - अनुप्रयोग त्रुटि उदाहरण उठाएँ

  3. बाइंड वैरिएबल का उपयोग करके गतिशील रूप से टेबल और कॉलम नाम पास करना

  4. Oracle में LEAST () फ़ंक्शन

  5. Oracle 12.2 शेयरिंग