Jak działa SUBSTRING w języku SQL? Przykłady zastosowania

Jak działa SUBSTRING w języku SQL? Przykłady zastosowania

Funkcja SUBSTRING w SQL to jedno z podstawowych narzędzi do manipulacji danymi tekstowymi. Często zdarza się, że chcemy wydobyć określoną część łańcucha znaków, na przykład pierwsze trzy litery imienia klienta albo numer seryjny z dłuższego kodu produktu. W tym artykule pokażę, jak działa SUBSTRING w języku SQL, omówię jego składnię oraz przedstawię praktyczne przykłady zastosowania.

Składnia funkcji SUBSTRING

Funkcja SUBSTRING umożliwia pobranie określonej liczby znaków z łańcucha tekstowego, zaczynając od konkretnej pozycji. W zależności od systemu bazodanowego, jej składnia może się nieco różnić, ale ogólnie wygląda następująco:

SUBSTRING(źródło_tekstu, pozycja_startowa, liczba_znaków)

Gdzie:

  • źródło_tekstu – kolumna lub wartość tekstowa, z której chcemy wydobyć fragment;
  • pozycja_startowa – pozycja, od której zaczynamy pobieranie znaków (liczona od 1);
  • liczba_znaków – ilość znaków do pobrania.

Przykłady zastosowania SUBSTRING

Wydobywanie fragmentu tekstu z kolumny

Załóżmy, że mamy tabelę klienci z kolumną imie, i chcemy pobrać pierwsze trzy litery każdego imienia:

SELECT imie, SUBSTRING(imie, 1, 3) AS pierwsze_litery
FROM klienci;

Wydobycie kodu regionu z numeru telefonu

Jeśli w bazie mamy numery telefonów zapisane w formacie +48 123 456 789, a chcemy pobrać kod kraju (+48), możemy użyć:

SELECT numer_telefonu, SUBSTRING(numer_telefonu, 1, 3) AS kod_kraju
FROM kontakty;

Wyciąganie części kodu produktu

Zakładając, że w tabeli produkty mamy kolumnę kod_produktu w formacie ABC-12345-XYZ, możemy wydobyć tylko numer seryjny (środkową część kodu):

SELECT kod_produktu, SUBSTRING(kod_produktu, 5, 5) AS numer_seryjny
FROM produkty;

SUBSTRING w różnych bazach danych

Każdy system zarządzania bazami danych ma własne sposoby implementowania funkcji SUBSTRING. Oto kilka przykładów:

System bazodanowy Funkcja
MySQL SUBSTRING(tekst, start, długość) lub SUBSTR(tekst, start, długość)
PostgreSQL SUBSTRING(tekst FROM start FOR długość)
SQL Server SUBSTRING(tekst, start, długość)
Oracle SUBSTR(tekst, start, długość)

Różnice między SUBSTRING i LEFT/RIGHT

W SQL istnieją także alternatywne funkcje do wyciągania fragmentów tekstu:

  • LEFT(tekst, liczba_znaków) – pobiera określoną liczbę znaków od lewej strony łańcucha;
  • RIGHT(tekst, liczba_znaków) – pobiera określoną liczbę znaków od prawej strony łańcucha.

Przykład porównawczy:

SELECT 
    SUBSTRING(imie, 1, 3) AS substring,
    LEFT(imie, 3) AS left_function
FROM klienci;

Podsumowanie

Funkcja SUBSTRING w języku SQL to potężne narzędzie do pracy z danymi tekstowymi. Dzięki niej można łatwo wyciągnąć potrzebne fragmenty łańcucha znaków, niezależnie od ich pozycji w tekście. Warto pamiętać, że w różnych systemach baz danych jej składnia może się nieco różnić, ale ogólna zasada działania pozostaje taka sama. Mam nadzieję, że powyższe przykłady pomogą w lepszym zrozumieniu, jak działa SUBSTRING w SQL.

 

Inny ciekawy artykuł:

Jak działa RTRIM w języku SQL? Przykłady zastosowania

KajoDataSpace