domenica 24 marzo 2019

PostgreSQL ordinare un campo testo, convertendolo numerico - Select Order varchar string as numeric

Nel caso che abbiamo l'esigenza di trasformare un campo string in numerico, ed ordinarlo dovremmo usare l'espressioni regolari.
Supponiamo di avere un campo string, con valori simili a questo "1/2017"  "2/2017", "1/2018", 2"1/2019" etc. e vogliamo ordinarli in base al primo valore e non con il simbolo della barra (/), tramite la funzione regexp verificando solo i numeri.
Qui di seguito un frammento di codice.


select   * from NomeTabella
ORDER BY NULLIF(regexp_replace(NomeCampo, '\D', '', 'g'), '')::int asc

Nessun commento: