sql >> Databasteknik >  >> RDS >> PostgreSQL

Klipp sträng efter första förekomsten av ett tecken

Använd split_part() :

SELECT split_part('first:last', ':', 1) AS first_part

Returnerar hela strängen om avgränsaren inte finns där. Och det är enkelt att få den andra eller tredje delen osv.

Betydligt snabbare än funktioner som använder reguljära uttrycksmatchning. Och eftersom vi har en fast avgränsare behöver vi inte magin med reguljära uttryck.

Relaterat:



  1. Hur man får tid från db beroende på förhållandena

  2. Databasstorleksberäkning?

  3. Sammansatt JSONB-arrayfråga i Postgres?

  4. Varför tar ActiveRecord destroy_all så lång tid?