Как упоминал @Gordon, вам нужно сделать ORDER BY
перед ROWNUM
.
Во-первых, упорядочить по creationdate
:
SELECT *
FROM extractcandidate
WHERE process=1500
ORDER BY creationdate;
Во-вторых, ограничить число75:
SELECT *
FROM (
SELECT *
FROM extractcandidate
WHERE process=1500
ORDER BY creationdate
)
WHERE rownum <= 75;
Теперь вы можете подать его в UPDATE
.Чтобы найти правильные строки, вы обычно используете столбец первичного ключа.В вашем случае этого, похоже, не хватает, поэтому вы можете обратиться к внутреннему Oracle ROWID
:
UPDATE extractcandidate
SET process=15
WHERE rowid IN (
SELECT ri
FROM (
SELECT rowid as ri
FROM extractcandidate
WHERE process=1500
ORDER BY creationdate
)
WHERE rownum <= 75
);