CodeGym /Kursy /SQL SELF /Praca z tekstem: LENGTH(), SUBSTRING(), TRIM(), POSITION(...

Praca z tekstem: LENGTH(), SUBSTRING(), TRIM(), POSITION(), REPLACE(), INITCAP()

SQL SELF
Poziom 6 , Lekcja 0
Dostępny

Kiedy pracujesz z imionami, adresami, emailami albo innymi tekstami — prawie zawsze musisz zrobić jedną z dwóch rzeczy:

  • Wyciągnąć część tekstu
  • Poznać długość
  • Wyczyścić niepotrzebne spacje
  • Znaleźć/zamienić fragment
  • Sformatować wynik

Na przykład, musisz:

  • Wyświetlić tylko nazwisko z pełnego imienia i nazwiska.
  • Znaleźć studentów, których nazwisko zaczyna się na „P”.
  • Zamienić wszystkie spacje na podkreślenia.
  • Wyświetlić nazwisko z wielkiej litery.

Wszystkie te zadania ogarniesz łatwo dzięki funkcjom tekstowym PostgreSQL.

LENGTH() — długość tekstu

Funkcja LENGTH() zwraca liczbę znaków w tekście.

Składnia:

LENGTH(string)

Przykład:

SELECT name, LENGTH(name) AS name_length
FROM students;
name name_length
Art 3
Song 4
Pal 3

Przydatne do sprawdzania długości imienia i nazwiska, haseł i innych tekstów.

SUBSTRING() — wyciąganie części tekstu

Pozwala wyciągnąć podciąg z tekstu — na przykład pierwsze 3 znaki nazwiska albo domenę z emaila.

Składnia:

SUBSTRING(string FROM start FOR length)
  • start — pozycja pierwszego znaku (liczenie od 1)
  • length — ile znaków wyciągnąć

Przykład 1: pierwsze 3 litery nazwiska

SELECT last_name, SUBSTRING(last_name FROM 1 FOR 3) AS prefix
FROM students;
last_name prefix
Song Son
Pal Pal

Przykład 2: domena emaila

SELECT email, SUBSTRING(email FROM POSITION('@' IN email) + 1) AS domain
FROM students;
email domain
otto@example.com example.com
maria@gmail.com gmail.com

TRIM() — usuwanie zbędnych spacji

Usuwa spacje (i inne znaki) na początku i/lub na końcu tekstu.

Składnia:

TRIM([LEADING | TRAILING | BOTH] chars FROM string)

Ale najczęściej używasz po prostu:

TRIM(string)

Przykład:

SELECT '[' || TRIM('   Art   ') || ']' AS cleaned;
cleaned
[Art]

Szczególnie ważne, jeśli użytkownicy wpisują dane ręcznie (np. ze spacjami na początku).

POSITION() — szukanie podciągu

Zwraca pozycję, od której zaczyna się podciąg.

Składnia:

POSITION(substring IN string)

Przykład:

SELECT email, POSITION('@' IN email) AS at_position
FROM students;
email at_position
otto@example.com 5
anna.pal@gmail.com 9

Możesz użyć razem z SUBSTRING() żeby wyciągać części tekstu.

REPLACE() — zamiana podciągu

Zamienia wszystkie wystąpienia jednego podciągu na inny.

Składnia:

REPLACE(string, from_substring, to_substring)

Przykład: zamień spacje na podkreślenia

SELECT name, REPLACE(name, ' ', '_') AS fixed_name
FROM students;
name fixed_name
Otto Art Otto_Art
Maria Chi Maria_Chi

INITCAP() — pierwsza litera wielka

Zmienia tekst tak, żeby pierwsza litera każdego słowa była wielka, reszta — małe.

Składnia:

INITCAP(string)

Przykład:

SELECT INITCAP('anna pal') AS full_name;
full_name
Anna Pal

Przydatne do standaryzacji imion i nazwisk.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION