sql >> Database >  >> RDS >> PostgreSQL

Extraheer eerste numerieke deel van veld

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

Retourneert 1 of meer cijfers vanaf het begin van de tekenreeks.
Laat het anker weg ^ als u de eerste reeks cijfers . wilt in de string in plaats van de reeks aan het begin . Voorbeeld:

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

Lees over substring() en reguliere uitdrukkingen in de handleiding.
In recentere versies (8.0+, met standard_conforming_strings = on ), gebruik escape string-syntaxis zoals dit:

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

Of gewoon:

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



  1. Overschakelen van varchar naar mediumtext leidt tot prestatievermindering

  2. Hoe kan ik de kolommen van twee tabellen samenvoegen tot één uitvoer?

  3. Fout:ORA-06553:PLS-306:verkeerd aantal of typen argumenten in aanroep van procedure

  4. Hoe het MySQLdb-pakket te installeren? (ImportError:Geen module met de naam setuptools)