Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Ermitteln des N-ten Minimums eines Varchar-Werts in Oracle

Wenn Sie den N-ten Wert von irgendetwas finden möchten, verwenden Sie die Analysefunktion NTH_VALUE() ist ein guter Anfang.

Angenommen, Sie möchten dies nur basierend auf dem numerischen Teil, müssen Sie alles ersetzen, was keine Zahl ist, wofür Sie REGEXP_REPLACE()

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

Um den N-ten Wert für eine gegebene CONFIG_ID zu erhalten, wäre es:

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

wobei n ist der Index des Werts, den Sie zurückgeben möchten.