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.