Funkcja SUBSTRING w zapytaniach SQL jest najczęściej używana podczas pracy z danymi tekstowymi - odpowiada za „przycięcie” przekazanego do niej ciągu.
Как и в большинстве языков программирования, w tym ORACLE i MS SQL, SUBSTRING zawiera trzy parametry. Pierwszym argumentem funkcji jest sam łańcuch wejściowy - może zostać jawnie zarejestrowany lub uzyskany w wyniku wykonania jakiegoś żądania. Następują dwa parametry numeryczne - znak początkowy, od którego nastąpi przycięcie, i bezpośrednio długość - liczba znaków, które chcesz odczytać, zaczynając od pozycji początkowej.
Struktura zapytania w SQL jest następująca:
SUBSTRING ("jakiś ciąg"; 1, 3)
Wynikiem tego zapytania będziestring „eco” - W SQL funkcja SUBSTRING identyfikuje elementy zaczynające się od zera, którym w tym przykładzie jest litera „n”. Warto zauważyć, że jeśli określisz ujemną długość, DBMS wygeneruje błąd, a jeśli wybierzesz wartość, która przekracza różnicę między liczbą ostatniego znaku a liczbą początkową, wynikiem zapytania będzie ciąg znaków od określonej pozycji do końca ciągu.
W językach SQL SUBSTRING jest rzadko używane dlawykonywanie prostych zapytań - w zasadzie funkcja jest używana jako część złożonego algorytmu. Niemniej jednak z jej udziałem są dość proste zadania. Na przykład, jeśli chcesz utworzyć kategorię użytkowników podobną do pierwszej litery ich nazwiska, SUBSTRING pozwoli ci obejść się bez podziału linii pomocniczych.
WYBIERZ adresy, PODCIĄG (LastName, 1, 1) jako FirstChar FROM Clients
W ten sposób możesz utworzyć uproszczony plikksiążka telefoniczna, skąd pobrać całą listę użytkowników, których nazwiska zaczynają się od określonej litery, wystarczy dokonać selekcji przy pomocy pola FirstChar.
Bardziej realistycznym przykładem jest stworzenie gotowej skróconej wersji nazwy użytkownika - czyli nazwisko wraz z inicjałem klienta powinno zostać zwrócone jako wynik zapytania.
WYBIERZ Nazwisko & „” & SUBSTRING (FirstName, 1, 1) & „.” Jak na początku od klientów
Warto zauważyć, że PODCIĄG SQL działa równie dobrze zarówno z polami tekstowymi, jak i numerycznymi.