sql >> Databasteknik >  >> RDS >> PostgreSQL

Extrahera den första numeriska delen av fältet

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

Returnerar 1 eller fler siffror från början av strängen.
Utelämna ankaret ^ om du vill ha den första siffrorna i strängen istället för sekvensen i början . Exempel:

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

Läs om substring() och reguljära uttryck i manualen.
I nyare versioner (8.0+, med standard_conforming_strings = on ), använd escape-strängsyntax så här:

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

Eller bara:

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



  1. Spårar höga CLR_MANUAL_EVENT-väntningar

  2. MySQL SELECT WHERE datetime matchar dag (och inte nödvändigtvis tid)

  3. Vad betyder storleksbegränsning på MySQL-index?

  4. viloläge med c3p0:createClob() är ännu inte implementerat