
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
Opanuj SQL z moim kursem!
Poznasz zarówno podstawy, jak i zaawansowane zapytania analityczne (CTE, subqueries, window functions). Nauczysz się pracować na różnych silnikach – na kursie pracujemy zarówno na MySQL, jak i na Postgres. Wszystko zainstalujemy na Twoim komputerze, plus dostaniesz mnóstwo zestawów danych do ćwiczeń.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.