Việc sử dụng ORDER BY
trong một INSERT SELECT
không phải là vô nghĩa miễn là nó có thể thay đổi nội dung của dữ liệu được chèn, tức là bằng một chuỗi NEXTVAL
bao gồm trong SELECT
mệnh đề. Và điều này ngay cả khi các hàng được chèn sẽ không được sắp xếp khi tìm nạp - đó là vai trò của ORDER BY
của bạn mệnh đề trong SELECT
của bạn khi truy cập các hàng.
Đối với mục tiêu như vậy, bạn có thể sử dụng công việc xoay quanh việc đặt ORDER BY
mệnh đề trong truy vấn phụ và nó hoạt động:
INSERT INTO myTargetTable
(
SELECT mySequence.nextval, sq.* FROM
( SELECT f1, f2, f3, ...fx
FROM mySourceTable
WHERE myCondition
ORDER BY mySortClause
) sq
)