PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Група за улавяне на регулярен израз на PostgreSQL в select

Ако се опитвате да уловите съвпадението на регулярния израз, което е резултат от израза, тогава substring ще свърши работа:

select substring ('I have a dog', 'd[aeiou]g')

Ще върне всяко съвпадение, в този случай "куче."

Мисля, че липсващата връзка от това, което опитвахте по-горе, беше, че трябва да поставите израза, който искате да уловите, в скоби. regexp_matches ще работи в този случай (ако сте включили скоби около израза, който искате да заснемете), но ще върне масив от текст с всяко съвпадение. Ако има едно съвпадение, substring донякъде е удобно.

Така че, връщайки се към вашия пример, ако се опитвате да върнете stuff ако и само ако е в началото на колона:

select substring (column, '^(stuff)')

или

select (regexp_matches (column, '^(stuff)'))[1]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Има проблеми с комбинирането на HAVING с WHERE при много проста QUERY

  2. Топ GUI инструменти за PostgreSQL

  3. Хибернация:дублираната стойност на ключ нарушава уникалното ограничение

  4. Създайте псевдоним за PostgreSQL таблица

  5. Как да направя транзакции на база данни с psycopg2/python db api?