PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Extraia a primeira parte numérica do campo

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

Retorna 1 ou mais dígitos do início da string.
Deixe de fora a âncora ^ se você quiser a primeira sequência de dígitos na string em vez da sequência no início . Exemplo:
SELECT substring('South 13rd street 3452435 foo', '\\d+');

Leia sobre substring() e expressões regulares no manual.
Nas versões mais recentes (8.0+, com standard_conforming_strings = on ), use a sintaxe de string de escape assim:
SELECT substring('South 13rd street 3452435 foo', E'\\d+');

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