sql >> Databáze >  >> RDS >> Oracle

Oracle:Jak mohu implementovat přirozené pořadí v dotazu SQL?

Můžete použít funkce v doložce objednávky. V tomto případě můžete rozdělit nečíselnou a číselnou část pole a použít je jako dvě z kritérií řazení.

select * from t
 order by to_number(regexp_substr(a,'^[0-9]+')),
          to_number(regexp_substr(a,'[0-9]+$')),
          a;

Můžete také vytvořit index založený na funkcích, který to podporuje:

create index t_ix1
    on t (to_number(regexp_substr(a, '^[0-9]+')),
          to_number(regexp_substr(a, '[0-9]+$')), 
          a);


  1. Proč funkce 'insert' nepřidává řádky pomocí MySQLdb?

  2. PHP, PDO, MySQL, Upozornění:Snaží se získat vlastnost non-objektu

  3. Chci použít příkaz CASE k aktualizaci některých záznamů na serveru SQL 2005

  4. Jak najít chybu způsobující ora-06575?