Встроенные функции
Функции для работы со строками
Для работы со строками в T-SQL можно применять следующие функции:
LEN: возвращает количество символов в строке. В качестве параметра в функцию передается строка, для которой надо найти длину:
1SELECT
LEN(
'Apple'
)
-- 5
LTRIM: удаляет начальные пробелы из строки. В качестве параметра принимает строку:
1SELECT
LTRIM(
' Apple'
)
RTRIM: удаляет конечные пробелы из строки. В качестве параметра принимает строку:
1SELECT
RTRIM(
' Apple '
)
CHARINDEX: возвращает индекс, по которому находится первое вхождение подстроки в строке. В качестве первого параметра передается подстрока, а в качестве второго - строка, в которой надо вести поиск:
1SELECT
CHARINDEX(
'pl'
,
'Apple'
)
-- 3
PATINDEX: возвращает индекс, по которому находится первое вхождение определенного шаблона в строке:
1SELECT
PATINDEX(
'%p_e%'
,
'Apple'
)
-- 3
LEFT: вырезает с начала строки определенное количество символов. Первый параметр функции - строка, а второй - количество символов, которые надо вырезать сначала строки:
1SELECT
LEFT
(
'Apple'
, 3)
-- App
RIGHT: вырезает с конца строки определенное количество символов. Первый параметр функции - строка, а второй - количество символов, которые надо вырезать сначала строки:
1SELECT
RIGHT
(
'Apple'
, 3)
-- ple
SUBSTRING: вырезает из строки подстроку определенной длиной, начиная с определенного индекса. Певый параметр функции - строка, второй - начальный индекс для вырезки, и третий параметр - количество вырезаемых символов:
1SELECT
SUBSTRING
(
'Galaxy S8 Plus'
, 8, 2)
-- S8
REPLACE: заменяет одну подстроку другой в рамках строки. Первый параметр функции - строка, второй - подстрока, которую надо заменить, а третий - подстрока, на которую надо заменить:
1SELECT
REPLACE
(
'Galaxy S8 Plus'
,
'S8 Plus'
,
'Note 8'
)
-- Galaxy Note 8
REVERSE: переворачивает строку наоборот:
1SELECT
REVERSE(
'123456789'
)
-- 987654321
CONCAT: объединяет две строки в одну. В качестве параметра принимает от 2-х и более строк, которые надо соединить:
1SELECT
CONCAT(
'Tom'
,
' '
,
'Smith'
)
-- Tom Smith
LOWER: переводит строку в нижний регистр:
1SELECT
LOWER
(
'Apple'
)
-- apple
UPPER: переводит строку в верхний регистр
1SELECT
UPPER
(
'Apple'
)
-- APPLE
SPACE: возвращает строку, которая содержит определенное количество пробелов
Например, возьмем таблицу:
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 FullProdName FROM Products ORDER BY Abbreviation |