Oracle
 sql >> база данни >  >> RDS >> Oracle

Сортирайте знаците във varchar2 по азбучен ред

От отговор на http://forums.oracle.com/forums/thread .jspa?messageID=1791550 това може да работи, но нямате 10 g, за да тествате...

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')

В примера col е дефинирана в SQL*Plus, но ако направите това функция, можете да я предадете или да я преработите, за да вземе директно колона от таблица, предполагам.

Бих приел това по-скоро като отправна точка, отколкото като решение; първоначалният въпрос беше за анаграми, така че е проектиран да намира всички пермутации, така че нещо подобно, но опростено може да е възможно. Подозирам, че това не се мащабира много добре за големи стойности.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо имам неуспешна контролна сума при всяка лоша SQL заявка в Oracle, когато Native Encryption (ASO) е активирано?

  2. Как да въведете символ за нов ред в Oracle?

  3. Използване на оператор case в ограничение за проверка

  4. node-oracledb грешка при изпълнение на съхранена процедура NJS-012

  5. Как да преобразувате числов формат на изчислена колона във формат за време (hh:mm:ss), sql заявка