Từ câu trả lời tại http://forums.oracle.com/forums/thread .jspa? messageID =1791550 điều này có thể hoạt động, nhưng không có 10g để kiểm tra trên ...
SELECT MIN(permutations)
FROM (SELECT REPLACE (SYS_CONNECT_BY_PATH (n, ','), ',') permutations
FROM (SELECT LEVEL l, SUBSTR ('&col', LEVEL, 1) n
FROM DUAL
CONNECT BY LEVEL <= LENGTH ('&col')) yourtable
CONNECT BY NOCYCLE l != PRIOR l)
WHERE LENGTH (permutations) = LENGTH ('&col')
Trong ví dụ col
được định nghĩa trong SQL * Plus, nhưng nếu bạn đặt đây là một hàm, bạn có thể chuyển nó vào hoặc có thể làm lại nó để lấy trực tiếp một cột trong bảng.
Tôi coi đó là điểm khởi đầu hơn là một giải pháp; câu hỏi ban đầu là về đảo ngữ vì vậy nó được thiết kế để tìm tất cả các hoán vị, vì vậy có thể có một cái gì đó tương tự nhưng đơn giản hơn. Tôi nghi ngờ điều này không mở rộng cho các giá trị lớn.