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