sql >> Database teknologi >  >> RDS >> Oracle

sortering af alpanumeriske strenge i Oracle 11g

Det, du har vist i spørgsmålsrækkefølgen kun efter den numeriske del af værdien, så du vil se noget som:

TOKEN
------
BRIP.1
BRFL.1
BRBF.1
BR00.1
BRRF.1
BR00.2
BRRF.2
BRBF.2
BR00.3
BRRF.3
BR01.1
BR01.2
BR06.1
BR12.1
BR13.2
BR17.1
BR120 
BR121 
BR132 

Hvis du vil sortere efter de alfabetiske tegn og derefter efter tallene i disse, kan du bruge to udtryk i rækkefølgen efter klausul - så du sorterer efter den første alfabetiske sektion, og derefter efter det tal, der er dannet af det, der er tilbage efter alle alfabetiske tegn er fjernet:

select * from sortest
order by regexp_substr(token, '[[:alpha:]]*'),
  to_number(regexp_replace(token, '[[:alpha:]]', null));

TOKEN
------
BR00.1
BR00.2
BR00.3
BR01.1
BR01.2
BR06.1
BR12.1
BR13.2
BR17.1
BR120 
BR121 
BR132 
BRBF.1
BRBF.2
BRFL.1
BRIP.1
BRRF.1
BRRF.2
BRRF.3



  1. Hent ændrede data, efter siden er opdateret

  2. Android SQLite lukket undtagelse

  3. MySQL-baseret webapp:Den nemmeste måde for brugere at vælge ordre eller varer?

  4. Formater datonummer fra databasen