Blog JSystems - z miłości do programowania

Szukaj

Operatory i funkcje operujące na tekście w MS SQL Server

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;


28.png (755×338)


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;


29.png (903×317)


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;


30.png (720×338)


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;


31.png (857×338)


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;


32.jpg (742×342)


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;


33.jpg (803×354)


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;


34.jpg (746×338)


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;


35.png (781×321)


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;


36.png (692×328)


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;


37.png (703×328)


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;


38.jpg (699×317)


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;


39.png (672×317)


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;


40.png (746×317)


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;


41.png (780×317)


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;


42.png (757×325)


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;


43.png (725×323)


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;


44.png (791×323)


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).


 

Przyjdź do nas na szkolenie z baz danych SQL Server! Mamy szereg szkoleń w ofercie: SQL, T-SQL, tuning, administracja i wiele innych. Sprawdź dostępne szkolenia SQL Server
Zapisz się do newslettera aby otrzymywać najnowsze świeżynki pojawiające się na blogu! Zapisz się do newslettera