PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Extraire la première partie numérique du champ

SELECT substring(address, '^\\d+') AS heading_number
FROM   tbl
WHERE  zip = 12345
AND    address ILIKE '3%'

Renvoie 1 ou plusieurs chiffres à partir du début de la chaîne.
Laissez de côté l'ancre ^ si vous voulez la première séquence de chiffres dans la chaîne au lieu de la séquence au début . Exemple :

SELECT substring('South 13rd street 3452435 foo', '\\d+');

En savoir plus sur substring() et expressions régulières dans le manuel.
Dans les versions plus récentes (8.0+, avec standard_conforming_strings = on ), utilisez syntaxe de chaîne d'échappement comme ceci :

SELECT substring('South 13rd street 3452435 foo', E'\\d+');

Ou simplement :

SELECT substring('South 13rd street 3452435 foo', '\d+');