SUBSTRING()
Funkcja SUBSTRING() daje nam możliwość wycięcia fragmentu ciągu znaków z rekordu.
Uwaga:
Funkcja SUBSTRING() posiada swój synonim o nazwie MID(). MID() oraz SUBSTRING() można stosować zamiennie.
Funkcja SUBSTRING() posiada kilka parametrów, które możemy stosować na wiele sposobów:
- SUBSTRING(string,pos) - wynikiem będzie ciąg znaków od znaku
pos do końca ciągu,
- SUBSTRING(string,pos,dlugosc) - wynikiem będzie ciąg znaków od znaku
pos o długości
dlugosc,
- SUBSTRING(string FROM pos) - wynikiem będzie ciąg znaków od znaku
pos do końca ciągu,
- SUBSTRING(string FROM pos FOR dlugosc) - wynikiem będzie ciąg znaków od znaku
pos o długości
dlugosc.
W przypadku wartości dla
pos można stosować wartości ujemne. Oznacza to, że zamiast liczyć pozycję od początku ciągu, liczymy ją od końca.
Na przykład chcemy wyświetlić dwa ostatnie znaki z ciągu, dzięki temu możemy użyć zapytania:
SELECT SUBSTRING( Imie, -2) FROM users.
Składnia:
SELECT SUBSTRING(kolumna, ...) FROM tabela;
Przykład:
Tabela "users" oraz jej zawartość:
SELECT * FROM users;
id |
Imie |
Nazwisko |
Adres |
Miasto |
Wiek |
1 |
Adam |
Kowalski |
Warszawska 10 |
Wrocław |
23 |
2 |
Monika |
Gosiewska |
Bema 2/3 |
Gdańsk |
19 |
3 |
Marcin |
Jastrzębski |
Białostocka 10b/2 |
Kraków |
56 |
4 |
Paulina |
Milewska |
Jagiellońska 3 |
Lublin |
18 |
Na powyższej tabeli wykonujemy zapytanie:
SELECT SUBSTRING(Miasto, 1, 2) FROM users;
SUBSTRING(Miasto, 1, 2) |
Wr |
Gd |
Kr |
Lu |
Wyświetlamy tutaj dwie pierwsze litery miast.
Przykład 2:
SELECT SUBSTRING(Miasto, -3, 2) FROM users;
SUBSTRING(Miasto, -3, 2) |
ła |
ńs |
kó |
li |
Wyświetlamy tutaj dwa znaki zacznając od 3 od końca. Wynikiem jest zatem 3 oraz 2 znak od końca dla każdego wiersza.
Uwaga: zakładamy tutaj, iż ostatni znak od końca ma pozycję -1, a nie 0.