Användningen av en ORDER BY
inom en INSERT SELECT
är inte meningslöst så länge den kan ändra innehållet i den infogade datan, d.v.s. med en sekvens NEXTVAL
ingår i SELECT
klausul. Och detta även om de infogade raderna inte kommer att sorteras när de hämtas - det är rollen för din ORDER BY
sats i din SELECT
klausul när du kommer åt raderna.
För ett sådant mål kan du använda en lösning för att placera din ORDER BY
sats i en underfråga , och det fungerar:
INSERT INTO myTargetTable
(
SELECT mySequence.nextval, sq.* FROM
( SELECT f1, f2, f3, ...fx
FROM mySourceTable
WHERE myCondition
ORDER BY mySortClause
) sq
)