Funkcja SUBSTR() w SQL

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Co to jest SUBSTR() w SQL?

SUBSTR() to funkcja tekstowa SQL służąca do pobierania fragmentu napisu. W wielu bazach danych działa podobnie do SUBSTRING(). Najczęściej używa się jej, gdy trzeba porównać tylko część wartości zapisanej w kolumnie.

Składnia

SUBSTR(tekst, pozycja_startowa, liczba_znakow)
  • tekst - napis lub kolumna, z której pobierany jest fragment,
  • pozycja_startowa - numer znaku, od którego zaczyna się wycinanie; w SQL zwykle liczenie zaczyna się od 1,
  • liczba_znakow - ile znaków ma zostać pobranych.

Przykład

SELECT SUBSTR('2017', 3, 2);

Wynik:

17

Funkcja pobiera dwa znaki od trzeciej pozycji, czyli z napisu 2017 zwraca 17.

Zastosowanie w warunku WHERE

SELECT *
FROM produkt
WHERE SUBSTR(rok_produkcji, 3, 2) = 17;

Jeśli w kolumnie rok_produkcji znajdują się wartości z lat po 2000 roku, np. 2017, to SUBSTR(rok_produkcji, 3, 2) wyciąga dwie ostatnie cyfry roku. Dla 2017 będzie to 17, więc zapytanie wybierze artykuły wyprodukowane w roku 2017.

Uwaga egzaminacyjna

Choć takie zapytanie może działać, czytelniejszy i bezpieczniejszy zapis to:

SELECT *
FROM produkt
WHERE rok_produkcji = 2017;

Na egzaminie trzeba jednak interpretować dokładnie podane zapytanie.