J'ai une base de données avec des enregistrements dans varchar Je veux commander. À l'heure actuelle, j'utilise la requête suivante pour trier par nombre:Trier varchar avec des lettres et des chiffres - PostgreSQL
SELECT name
FROM table
ORDER BY
NULLIF(regexp_replace(name, E'\\D', '', 'g'), '')::int
records mixtes (chiffres + lettres) sont commandés correctement, mais les enregistrements avec seulement les lettres ne sont pas correctement triés:
Query Results:
name:
1st guy
2nd guy
3rd guy
10th guy
11th guy
v guy
a guy
z guy
c guy
Bien que le résultat Je veux est:
Query Results:
name:
1st guy
2nd guy
3rd guy
10th guy
11th guy
a guy
c guy
v guy
z guy
Pouvez-vous les gars m'aider?