sql >> Databáze >  >> RDS >> PostgreSQL

Jak mohu porovnat poslední dvě slova ve větě v PostgreSQL?

Místo použití REGEXP_MATCHES který vrací pole shod, může být lepší použít SUBSTRING což vám dá shodu jako TEXT přímo.

Pomocí správného vzoru, jak sdílel @Abelisto, můžete provést toto:

SELECT SUBSTRING('My name is Harry Potter' FROM '\w+\W+\w+$')

To vrátí Harry Potter na rozdíl od {"Harry Potter"}

Podle komentáře @Hambone, pokud některé ze slov na konci obsahuje interpunkci, jako je apostrof, měli byste zvážit použití následujícího vzoru:

SELECT SUBSTRING('My name is Danny O''neal' FROM '\S+\s+\S+$')

Výše uvedené by správně vrátilo Danny O'neal na rozdíl od pouhého O'neal



  1. Počet řádků ovlivněných UPDATE v PL/SQL

  2. Rails Migration mění sloupec pro použití polí Postgres

  3. PostgreSQL kontrolní omezení pro podmínku cizího klíče

  4. Proč není v PostgreSQL dostupné celé číslo bez znaménka?