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

Find det N'te minimum af en Varchar-værdi i Oracle

Hvis du vil finde den N'te værdi af noget, så er den analytiske funktion NTH_VALUE() er et godt sted at starte.

Hvis du antager, at du kun ønsker dette baseret på den numeriske del, skal du erstatte alt, der ikke er et tal, som du kan bruge REGEXP_REPLACE()

select regexp_replace(escalation_level, '[^[:digit:]]')
  from my_table

For at opnå den N'te værdi for et givet CONFIG_ID ville det være:

select nth_value(escalation_level, n)
         over ( partition by config_id 
                    order by regexp_replace(escalation_level, '[^[:digit:]]') )
  from my_table

hvor n er indekset for den værdi, du vil returnere.



  1. PHP PDO-relateret:Opdater SQL-sætning, der ikke opdaterer indholdet af databasen

  2. Forbedring af ydeevnen af ​​Postgres jsonb-forespørgsler kombineret med relationelle forespørgsler

  3. Hvorfor er 1899-12-30 nuldatoen i Access / SQL Server i stedet for 12/31?

  4. muterer, trigger/funktion ser det muligvis ikke - fejl under udførelse af trigger