Search code examples
oracle-databasesql-updaterownum

How to UPDATE from SELECT result where condition is ROWNUM?


I am having some problem creating update query based on select query with ROWNUM as WHERE condition.

I did experiments with these queries:

SELECT * 
FROM
    (SELECT ROWNUM, RVT.* FROM RVT)
WHERE RVT_ID IS NOT NULL;

This works, but

SELECT * 
FROM
    (SELECT ROWNUM, RVT.* FROM RVT)  AS TEMP_TABLE1
WHERE TEMP_TABLE1.RVT_ID IS NOT NULL;

doesn't work.

What I want to achieve is this:

UPDATE REVIEW_T  
SET RVT_RATING = 1 
FROM (SELECT ROWNUM, RVT.* FROM RVT )
WHERE ROWNUM = 1;

Which does not work. Also,

UPDATE REVIEW_T  
SET RVT_RATING = 1 
FROM (SELECT ROWNUM, RVT.* FROM RVT) AS TEMP_TABLE
WHERE TEMP_TABLE.ROWNUM = 1;

doesn't work either.

What am I doing wrong?


Solution

  • I want to create 'index' 1,2,3,....600 for the all rows of one of my existing table

    If that's so, then

    UPDATE REVIEW_T SET RVT_RATING = rownum;