Встроенные функции
Функции для работы со строками
Для работы со строками в T-SQL можно применять следующие функции:
LEN: возвращает количество символов в строке. В качестве параметра в функцию передается строка, для которой надо найти длину:
1SELECTLEN('Apple')-- 5LTRIM: удаляет начальные пробелы из строки. В качестве параметра принимает строку:
1SELECTLTRIM(' Apple')RTRIM: удаляет конечные пробелы из строки. В качестве параметра принимает строку:
1SELECTRTRIM(' Apple ')CHARINDEX: возвращает индекс, по которому находится первое вхождение подстроки в строке. В качестве первого параметра передается подстрока, а в качестве второго - строка, в которой надо вести поиск:
1SELECTCHARINDEX('pl','Apple')-- 3PATINDEX: возвращает индекс, по которому находится первое вхождение определенного шаблона в строке:
1SELECTPATINDEX('%p_e%','Apple')-- 3LEFT: вырезает с начала строки определенное количество символов. Первый параметр функции - строка, а второй - количество символов, которые надо вырезать сначала строки:
1SELECTLEFT('Apple', 3)-- AppRIGHT: вырезает с конца строки определенное количество символов. Первый параметр функции - строка, а второй - количество символов, которые надо вырезать сначала строки:
1SELECTRIGHT('Apple', 3)-- pleSUBSTRING: вырезает из строки подстроку определенной длиной, начиная с определенного индекса. Певый параметр функции - строка, второй - начальный индекс для вырезки, и третий параметр - количество вырезаемых символов:
1SELECTSUBSTRING('Galaxy S8 Plus', 8, 2)-- S8REPLACE: заменяет одну подстроку другой в рамках строки. Первый параметр функции - строка, второй - подстрока, которую надо заменить, а третий - подстрока, на которую надо заменить:
1SELECTREPLACE('Galaxy S8 Plus','S8 Plus','Note 8')-- Galaxy Note 8REVERSE: переворачивает строку наоборот:
1SELECTREVERSE('123456789')-- 987654321CONCAT: объединяет две строки в одну. В качестве параметра принимает от 2-х и более строк, которые надо соединить:
1SELECTCONCAT('Tom',' ','Smith')-- Tom SmithLOWER: переводит строку в нижний регистр:
1SELECTLOWER('Apple')-- appleUPPER: переводит строку в верхний регистр
1SELECTUPPER('Apple')-- APPLESPACE: возвращает строку, которая содержит определенное количество пробелов
Например, возьмем таблицу:
1 2 3 4 5 6 7 8 | CREATE TABLE Products( Id INT IDENTITY PRIMARY KEY, ProductName NVARCHAR(30) NOT NULL, Manufacturer NVARCHAR(20) NOT NULL, ProductCount INT DEFAULT 0, Price MONEY NOT NULL); |
И при извлечении данных применим строковые функции:
1 2 3 4 | SELECT UPPER(LEFT(Manufacturer,2)) AS Abbreviation, CONCAT(ProductName, ' - ', Manufacturer) AS FullProdNameFROM ProductsORDER BY Abbreviation |
