Inspiracja , wiedza , realizacja
Jsystems

W przebudowie

Login



Java

Oracle

Linux

Android

PostgreSQL

Microsoft SQL Server

Operatory i funkcje operujące na tekście

Rafał Czarkowski
Data dodania: Jun 21, 2016
Data aktualizacji: Jun 21, 2016

Coalesce

coalesce (null, wartość zamienna) – podmienia wartości puste (null) na podaną wartość zstępczą. Wartość zastępcza musi być tego samego typu, co badana kolumna.


select FirstName, MiddleName, coalesce(middleName, ‘brak danych’)

from SalesLT.Customer;




W trzeciej kolumnie, każde wystąpienie null zostało zastąpione tekstem ‘brak danych’.


Łączenie ciągów za pomocą operatora [+]

string+string – połączy ciągi znakowe w jeden.


select FirstName, LastName,

FirstName+LastName FullName from SalesLT.Customer;




Trzecia kolumna przedstawia „sklejoną” zawartość dwóch pierwszych kolumn.

Standard SQL określa, że połączenia ze znacznikiem null powinny dawać wartość null – tak też domyślnie działa system SQL Server.


select FirstName, MiddleName, LastName,

FirstName+MiddleName+LastName FullName from SalesLT.Customer;




Czwarta kolumna przedstawia „sklejone” zawartości pozostałych kolumn. W przypadku wystąpienia po drodze wartości null, ostatnia kolumna również zwróciła wartość null.


Aby nie otrzymywać przy takim połączeniu pustych wyników należy zastosować funkcję coalesce, za pomocą której pozbędziemy się pustych wartości.


select FirstName, MiddleName, LastName,

FirstName+coalesce(MiddleName,’’)+LastName FullName from SalesLT.Customer;




W tym przykładzie, w przypadku wystąpienia wartości null, „doklejane” było puste wyrażenie, dzięki czemu w czwartej kolumnie, każde pole przedstawia już wartości znakowe.

Upper

upper (wyrażenie) - zwiększa cały ciąg tekstowy.


select Name, upper(Name) from SalesLT.Product;




Zwiększone zostały wszystkie litery w drugiej kolumnie wyświetlenia.


Jak widać, kolumny z danymi na których użyto funkcji, tracą swoją nazwę. Najprostszą metodą by mieć informację jakie dane przechowuje taka kolumna jest zaaliasowanie jej w odpowiedni sposób.


select Name, upper(Name) “zwiększone nazwy produktów” from SalesLT.Product;




Zwiększone zostały wszystkie litery w drugiej kolumnie wyświetlenia.

Lower

lower (wyrażenie) - zmniejsza wszystkie litery.


select Name, lower(Name) from SalesLT.Product;




Zmniejszone zostały wszystkie litery w drugiej kolumnie wyświetlenia.


Substring

substring (string, start, length) – wydobywa ciąg znaków rozpoczynając od znaku, który określa pierwszy parametr, którego liczbę znaków określa drugi parametr.


select FirstName, substring(FirstName, 1, 3) from SalesLT.Customer;




Pierwsza kolumna prezentująca imiona została wyświetlona normalnie, natomiast na drugą kolumnę, również z imionami, została nałożona funkcja substring, która wycięła i wyświetliła pierwsze trzy znaki, dla każdego pola w tej kolumnie.


Left

left (string, n) - wydobywa ciąg znaków rozpoczynając od lewej strony, którego liczbę znaków określa podany parametr.


select FirstName, left(FirstName, 3) from SalesLT.Customer;




Druga kolumna przedstawia wycięte trzy znaki, z kolumny z imionami, rozpoczynając od lewej strony.


Right

right (string, n) - wydobywa ciąg znaków rozpoczynając od prawej strony, którego liczbę znaków określa podany parametr.


select FirstName, right(FirstName, 3) from SalesLT.Customer;




Druga kolumna przedstawia wycięte trzy znaki, z kolumny z imionami, rozpoczynając od lewej strony.

Replace

replace (string, substring1, substring2) - funkcja podmienia w ciągu string, wszystkie wystąpienia ciągu substring1, na substring2.


select Name, replace(Name, ‘A’, ‘XXX’) from SalesLT.Product;




Wszystkie wystąpienia A zostały zamienione na XXX, w drugiej kolumnie wyświetlenia.


Len

len (string) - zwraca ilość znaków w ciągu string, jeśli string ma wartość null funkcja zwraca null, a nie (jak byłoby intuicyjnie) 0.


select MiddleName, len(MiddleName) from SalesLT.Customer;




Druga kolumna przedstawia ilość znaków ciągu znajdującego się w pierwszej kolumnie.

Datalength

datalength (string) - zwraca liczbę bajtów jakie zajmuje string, jeśli string ma wartość null funkcja (tak jak w przypadku funkcji len) zwraca 0. Dodatkowo funkcja ta uwzględnia w wyniku spacje końcowe.


select MiddleName, datalength(MiddleName) from SalesLT.Customer;




Charindex

charindex (substring, string[, start_pos]) - zwraca położenie pierwszego wystąpienia, pierwszego argumentu, wewnątrz drugiego. Opcjonalnie można podać trzeci argumenty wskazać położenie od którego funkcja ta ma rozpocząć wyszukiwanie. W przypadku braku trzeciego argumentu, funkcja rozpoczyna wyszukiwanie od pierwszego znaku. Jeśli wyszukiwany ciąg nie zostanie znaleziony, funkcja zwróci 0.


select Lastname, charindex(‘ar’,LastName, 2) from SalesLT.Customer;




Powyżej widać, że wyszukiwany ciąg został znaleziony w wierszach 2, 3, 5, 6, 8 i 9 za każdym razem na drugiej pozycji.

Patindex

patindex (pattern, string) - zwraca położenie pierwszego wystąpienia wzorca wewnątrz ciągu. Jeśli wyszukiwany ciąg nie zostanie znaleziony, funkcja zwróci 0.


select Lastname, patindex(‘%rr%’,LastName) from SalesLT.Customer;




Powyżej widać, że wyszukiwany ciąg został znaleziony w wierszach 2, 3, 5, 6, za każdym razem na trzeciej pozycji.


Replicate

replicate (string, n) - funkcja powiela ciąg string, zadaną ilość n razy.


select LastName, replicate(LastName, 3) from SalesLT.Customer;




Powyższy kod przykładowy, trzykrotnie replikuje ciąg z pierwszej kolumny, w drugiej kolumnie.


Stuff

stuff (string, position, delete_length, insertstring) - funkcja z ciągu znaków, usuwa podciąg ze wskazanego miejsca i o wskazanej długości znaków oraz w to miejsce wstawia nowy podciąg.


select LastName, stuff(LastName, 2, 1, ‘abc’) from SalesLT.Customer;




W drugiej kolumnie można zauważyć, że został usunięty jeden znak, z drugiej pozycji i został zastąpiony ciągiem ‘XXX’.


Ltrim

ltrim (string) - zwraca ciąg wyjściowy, jeśli występowały w nim spacje od lewej strony (początkowe) to je usuwa.


Rtrim

rtrim (string) - działa jak powyższa funkcja, z tą różnicą, że spacje usuwa od prawej strony (końcowe).