Меню Закрыть

Sql server строковые функции

Содержание

Функции для работы со строками

Для работы со строками в T-SQL можно применять следующие функции:

LEN : возвращает количество символов в строке. В качестве параметра в функцию передается строка, для которой надо найти длину:

LTRIM : удаляет начальные пробелы из строки. В качестве параметра принимает строку:

RTRIM : удаляет конечные пробелы из строки. В качестве параметра принимает строку:

CHARINDEX : возвращает индекс, по которому находится первое вхождение подстроки в строке. В качестве первого параметра передается подстрока, а в качестве второго — строка, в которой надо вести поиск:

PATINDEX : возвращает индекс, по которому находится первое вхождение определенного шаблона в строке:

LEFT : вырезает с начала строки определенное количество символов. Первый параметр функции — строка, а второй — количество символов, которые надо вырезать сначала строки:

RIGHT : вырезает с конца строки определенное количество символов. Первый параметр функции — строка, а второй — количество символов, которые надо вырезать сначала строки:

SUBSTRING : вырезает из строки подстроку определенной длиной, начиная с определенного индекса. Певый параметр функции — строка, второй — начальный индекс для вырезки, и третий параметр — количество вырезаемых символов:

REPLACE : заменяет одну подстроку другой в рамках строки. Первый параметр функции — строка, второй — подстрока, которую надо заменить, а третий — подстрока, на которую надо заменить:

REVERSE : переворачивает строку наоборот:

CONCAT : объединяет две строки в одну. В качестве параметра принимает от 2-х и более строк, которые надо соединить:

LOWER : переводит строку в нижний регистр:

UPPER : переводит строку в верхний регистр

SPACE : возвращает строку, которая содержит определенное количество пробелов

Например, возьмем таблицу:

И при извлечении данных применим строковые функции:

No. Описание функции
1 ASCII() Возвращает числовое значение левого символа
2 BIN() Возвращает строковое представление аргумента
3 BIT_LENGTH() Возвращает длину аргумента в битах
4 CHAR_LENGTH() Возвращает количество символов в аргументе
5 CHAR() Возвращает символ для каждого целого числа
6 CHARACTER_LENGTH() Синоним char_length()
7 CONCAT_WS() Возвращает объединение с сепаратором
8 CONCAT() Возвращает объединение строк
9 CONV() Преобразование числа между различными системами счисления
10 ELT() Возвращает строку под номером индекса
11 EXPORT_SET() Возвращает строку таким образом, что для каждого бита, установленного в значении бит, вы получаете строку и для каждого отключенного бита, вы не получите строку
12 FIELD() Возвращает индекс (позиция) первого аргумента в последующих аргументах
13 FIND_IN_SET() Возвращает индекс позиции первого аргумента во втором аргументе
14 FORMAT() Возвращает номер, отформатированный для указанного количества знаков после запятой
15 HEX() Возвращает строковое представление шестнадцатеричного
16 INSERT() Вставляет подстроку в указанной позиции до указанного числа символов
17 INSTR() Возвращает индекс первого вхождения подстроки
18 LCASE() Синоним LOWER()
19 LEFT() Возвращает крайний левый ряд символов, как указано
20 LENGTH() Возвращает длину строки в байтах
21 LOAD_FILE() Загружает файл с именем
22 LOCATE() Возвращает позицию первого вхождения подстроки
23 LOWER() Возвращает аргумент в нижнем регистре
24 LPAD() Возвращает строковый аргумент cлева с указанной строкой
25 LTrim() Удаляет начальные пробелы
26 MAKE_SET() Возвращает набор строк разделенных запятыми, которые имеют соответствующий бит
27 MID() Возвращает подстроку, начиная с заданной позиции
28 OCT() Возвращает строковое представление восьмеричного аргумента
29 OCTET_LENGTH() Синоним LENGTH()
30 ORD() Если крайний левый символ аргумента многобайтный символ, возвращает код для этого символа
31 POSITION() Синоним LOCATE()
32 QUOTE() Игнорирует аргумент для использования в операторе SQL
33 REGEXP Поиск по шаблону с использованием регулярных выражений
34 REPEAT() Повторяет строку указанное количество раз
35 REPLACE() Заменяет вхождения указанной строки
36 REVERSE() Меняет символы в строке
37 RIGHT() Возвращает указанный крайний правый ряд символов
38 Rpd() Добавляет строку в заданное число раз
39 RTRIM() Удаляет конечные пробелы
40 SOUNDEX() Возвращает строку SOUNDEX
41 SOUNDS LIKE Сравнивает звуки
42 SPACE() Возвращает строку из указанного количества пробелов
43 STRCMP() Сравнивает две строки
44 SUBSTRING_INDEX() Возвращает подстроку из строки до заданного числа появлений разделителя
45 SUBSTRING() , SUBSTR() Возвращает указанную подстроку
46 TRIM() Удаляет начальные и конечные пробелы
47 UCASE() Синоним UPPER()
48 Unheks() Преобразует каждую пару шестнадцатеричных цифр в символы
49 UPPER() Преобразует строку в верхний регистр
Читайте также:  Прикольная информация о себе в инстаграме

ASCII(строка)

Возвращает числовое значение первого символа строки. Возвращает 0, если строка пустая строка. Возвращает NULL, если строка является NULL. ASCII() работает для символов с числовыми значениями от 0 до 255.

Возвращает строковое представление двоичного значения N, где N представляет собой длинное целое (BIGINT) число. Это эквивалентно CONV (N, 10,2). Возвращает NULL, если N является NULL.

BIT_LENGTH(str)

Возвращает длину строки str в битах.

CHAR(N,… [USING charset_name])

CHAR() интерпретирует каждый аргумент N как целое число и возвращает строку, состоящую из символов, заданных кодовых значениями этих чисел. NULL значения пропускаются.

CHAR_LENGTH(str)

Возвращает длину строки str, измеренной в символах. Многобайтные символы считаются как один символ. Это означает, что для строки, содержащей пять символов два байта, LENGTH() возвращает 10, в то время как char_length() возвращает 5.

CHARACTER_LENGTH(str)

CHARACTER_LENGTH() является синонимом char_length() .

CONCAT (str1, str2, …)

Возвращает строку, которая является результатом конкатенации аргументов. Может иметь один или несколько аргументов. Если все аргументы не являются бинарными строками, результат не является бинарной строкой. Если аргументы включают в себя любые двоичные строки, результат является бинарной строкой. Числовой аргумент преобразуется в эквивалентную форму двоичной строки; если вы хотите избежать этого, вы можете использовать явное приведение типа, как в данном примере:

CONCAT_WS(separator,str1,str2,…)

CONCAT_WS() означает объединить с сепаратором и особую форму CONCAT(). Первый аргумент является разделителем для остальных аргументов. Разделитель добавляется между строками, которые объединяются. Сепаратор может быть строкой, как и остальные аргументы. Если разделитель равен NULL, то результат будет NULL.

CONV(N, N from_base, to_base)

Преобразование числа между различными системами счисления. Возвращает строковое представление числа N, преобразованное из базового from_base в to_base. Возвращает NULL, если любой параметр NULL. Аргумент N интерпретируется как целое, но может быть указан в виде целого числа или строки. Минимальная база 2, а максимальная база 36. Если to_base отрицательное число, N рассматривается как число со знаком. В противном случае, N трактуется как беззнаковое. CONV() работает с 64-битной точностью.

ELT(N, str1, str2, str3, …)

Возвращает str1, если N = 1, str2, если N = 2, и так далее. Возвращает NULL, если N меньше 1 или больше, чем число аргументов. ELT() является дополнением FIELD().

EXPORT_SET(bits,on,off[,separator[,number_of_bits]])

Возвращает строку, что для каждого бита, установленного в значении бит, вы получаете на строку и для каждого бита не установлен в значении, вы не получите строку. Биты в битах рассматриваются справа налево (от низкого до бита высокого порядка). Строки добавляются к результату слева направо, отделены друг от друга разделительной полосой (по умолчанию является символ запятой. ). Число битов задается NUMBER_OF_BITS (по умолчанию 64).

FIELD(str,str1,str2,str3,…)

Возвращает индекс (положение, начиная с 1) str в str1, str2, str3, … список. Возвращает 0, если строка не найдена.

FIND_IN_SET(str, strlist)

Возвращает значение в диапазоне от 1 до N, если строка str находится в списке строки strlist, состоящем из N подстрок.

FORMAT(X,D)

Формат числа X, как «#, ###, ###. ##» с округлением до D знаков после запятой, и возвращает результат в виде строки. Если D равно 0, результат не имеет десятичной точки или дробной части.

HEX(N_OR_S)

Если N_OR_S это число, возвращает строковое представление шестнадцатеричного значения N, где N представляет собой длинное целое (BIGINT) число. Это эквивалентно CONV (N, 10,16).

Если N_OR_S является строкой, то возвращает шестнадцатеричное строковое представление N_OR_S, где каждый символ в N_OR_S преобразуется в две шестнадцатеричных цифры.

INSERT(str,pos,len,newstr)

Возвращает строку str с подстрокой, начиная с позиции pos и кол-во символов len заменяется строкой newstr. Возвращает исходную строку, если позиция не находится в пределах длины строки. Заменяет остальную часть строки от позиции, если len не находится в пределах длины остальной части строки. Возвращает NULL, если любой параметр NULL.

Читайте также:  Drpsu что это за программа

INSTR(str,substr)

Возвращает позицию первого вхождения подстроки substr в строке str. Это так же, как два-аргумента формы LOCATE(), за исключением того, что порядок аргументов обратный.

LCASE(str)

LCASE() является синонимом LOWER() .

LEFT(str,len)

Возвращает крайние левые len символов из строки str, или NULL, если какой-либо аргумент NULL.

LENGTH(str)

Возвращает длину строки str, измеренную в байтах. Многобайтное количество символов в нескольких байт. Это означает, что для строки, содержащей пять символов два байта, LENGTH() возвращает 10, в то время как char_length() возвращает 5.

LOAD_FILE(file_name)

Читает файл и возвращает содержимое файла в виде строки. Чтобы использовать эту функцию, файл должен быть расположен на хосте сервера, необходимо указать полный путь к файлу, и вы должны иметь привилегию FILE. Файл должен быть доступен для чтения всем и его размер меньше, чем max_allowed_packet байт.

Если файл не существует или не может быть прочитан, и не одно из предыдущих условий не выполняется, то функция возвращает NULL.

По состоянию SQL 5.0.19, интерпретации переменных управления системой character_set_filesystem имен файлов, которые даны в виде текстовых строк.

LOCATE(substr,str), LOCATE(substr,str,pos)

Первый синтаксис возвращает позицию первого вхождения подстроки substr в строке str. Второй синтаксис возвращает позицию первого вхождения подстроки substr в строке str, начиная с позицией pos. Возвращает 0, если substr не в str.

LOWER(str)

Возвращает строку str, все символы переведены в нижний регистр в соответствии с текущим набором символов.

LPAD(str,len,padstr)

Возвращает строку str, слева дополняется строкой padstr до длины len символов. Если строка длиннее, чем длина, возвращаемое значение сокращаются до длины символов.

LTRIM(str)

Возвращает строку str, с удаленными пробелами.

MAKE_SET(bits,str1,str2,…)

Возвращает заданное значение (строку, содержащую подстроки, разделенные символом . ), состоящее из строк, имеющих соответствующий бит в наборе. str1 соответствует биту 0, str2 биту 1, и так далее. NULL значения в str1, str2, … не добавляется к результату.

MID(str,pos,len)

MID(str,pos,len) является синонимом SUBSTRING(str,pos,len).

Возвращает строковое представление восьмеричного значения N, где N представляет собой длинное целое (BIGINT) число. Это эквивалентно CONV (N, 10,8). Возвращает NULL, если N является NULL.

OCTET_LENGTH(str)

OCTET_LENGTH() является синонимом LENGTH() .

ORD(str)

Если крайний левый символ строки str многобайтный символ, то возвращает код для этого символа, вычисленного из числовых значений составляющих его байт, используя эту формулу:

Если крайний левый символ не является многобайтным символом а, Ord() возвращает то же значение, что и функция ASCII() .

POSITION(substr IN str)

POSITION(substr IN str) является синонимом LOCATE(substr,str).

QUOTE(str)

Котировки строки для получения результата, который может быть использован как правильно отображения значение данных в операторе SQL. Возвращается строка заключена в одинарные кавычки, и с каждым экземпляром одинарные кавычки ( «), обратной косой черты (» ‘), ASCII NUL и Control-Z предшествует обратный слэш. Если аргумент NULL, то возвращаемое значение слово «NULL» без ограждающих одиночных кавычек.

Примечание – Пожалуйста , проверьте , если ваша установка имеет какую – либо ошибку с этой функцией не используйте эту функцию.

expr REGEXP pattern

Эта функция выполняет соответствовать образцу выражение в отношении pattern. Возвращает 1, Если выражение соответствует pattern; в противном случае возвращает 0. Если какое-либо выражение или pattern имеет значение NULL, результатом будет NULL. Регулярное выражение не чувствительно к регистру, за исключением, когда используется с двоичными строками.

Давайте посмотрим еще один пример:

REPEAT(str,count)

Возвращает строку, состоящую из строки str неоднократное число раз. Если счетчик меньше 1, возвращает пустую строку. Возвращает NULL, если строка или количество является NULL.

REPLACE (str, from_str, to_str)

Возвращает строку str, в которой все вхождения строки from_str заменены строкой to_str. REPLACE() выполняет совпадение с учетом регистра при поиске from_str.

REVERSE(str)

Возвращает строку str с обратными порядком символов.

RIGHT(str,len)

Возвращает крайние правые символы len из строки str, или NULL, если какой-либо аргумент NULL.

RPAD(str,len,padstr)

Возвращает строку str, справа проложенный со строкой padstr до длины len символов. Если строка длиннее, чем длина, возвращаемое значение сокращаются до длины символов.

Читайте также:  Вася выбирает сок стоя перед витриной магазина

RTRIM(str)

Возвращает строку str, пробелы будут удалены.

SOUNDEX(str)

Возвращает строку из SOUNDEX str. Две строки, которые звучат почти так же, должны иметь идентичные строки SOUNDEX. Стандартная строка SOUNDEX длиной четыре символа, но функция SOUNDEX() возвращает произвольно длинную строку. Вы можете использовать SUBSTRING() на результате, чтобы получить стандартную строку SOUNDEX. Все не-алфавитные символы str игнорируются. Все международные алфавитные символы вне диапазона AZ обрабатываются как гласные.

expr1 SOUNDS LIKE expr2

Это то же самое, как SOUNDEX (Expr1) = SOUNDEX (expr2).

SPACE(N)

Возвращает строку, состоящую из символов пробела N.

STRCMP (str1, str2)

Сравнивает две строки и возвращает 0, если обе строки равны, и возвращается -1, если первый аргумент меньше второго согласно текущему порядку сортировки в противном случае она возвращает 1.

Давайте посмотрим еще один пример:

SUBSTRING(str,pos)

SUBSTRING(str FROM pos)

SUBSTRING(str,pos,len)

SUBSTRING(str FROM pos FOR len)

Формы без аргумента len возвращает подстроку из строки str, начиная с позиции pos. Формы с аргументом len возвращают подстроку len символов из строки str, начиная с позиции pos. Формы, которые используют FROM являются стандартным синтаксисом SQL. Кроме того, можно использовать отрицательное значение для pos. В этом случае, начало подстроки len символов от конца строки, а не c началf. Отрицательное значение может быть использовано для pos в любом из форм этой функции.

SUBSTRING_INDEX(str,delim,count)

Возвращает подстроку из строки str до количества вхождений разделителя DELIM. Если счетчик является положительным, все слева от последнего разделителя (считая слева) возвращаются. Если счетчик имеет отрицательное значение, все что справа от последнего разделителя (считая справа) возвращаются. SUBSTRING_INDEX() выполняет совпадение с учетом регистра при поиске DELIM.

TRIM([ [remstr] FROM] str)

TRIM([remstr FROM] str)

Возвращает строку str со все remstr префиксы или суффиксы удалены. Если ни один из спецификаторов BOTH, LEADING или TRAILING не заданы, предполагается, BOTH. remstr является необязательным и, если не указано, пробелы удаляются.

UCASE(str)

UCASE() является синонимом UPPER().

UNHEX(str)

Выполняет обратную операцию HEX(str). То есть, он интерпретирует каждую пару шестнадцатеричных цифр в аргументе как число и преобразует его в символ, представленный номер. Полученные символы возвращаются в виде бинарной строки.

Символы в строке аргумента должны быть шестнадцатеричные цифры: ‘0’ .. ‘9’, ‘A’ .. ‘F’, ‘а’ .. ‘е’. Если UNHEX() встречает любые не шестнадцатеричные цифры в аргументе, она возвращает NULL.

UPPER(str)

Возвращает строку, все символы переведены в верхний регистр в соответствии с текущим набором символов.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server База данных SQL Azure Azure Synapse Analytics (хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse

Следующие скалярные функции выполняют операции над входным строковым значением и возвращают строковое или числовое значение: The following scalar functions perform an operation on a string input value and return a string or numeric value:

Все встроенные строковые функции, кроме FORMAT , являются детерминированными. All built-in string functions except FORMAT are deterministic. Это значит, что они каждый раз возвращают одинаковое значение для одинакового набора входных параметров. This means they return the same value any time they are called with a specific set of input values. Дополнительные сведения о детерминированности функций см. в статье Детерминированные и недетерминированные функции. For more information about function determinism, see Deterministic and Nondeterministic Functions.

При передаче в строковые функции аргументов, которые не являются строковыми значениями, входной тип неявно преобразуется в текстовый тип данных. When string functions are passed arguments that are not string values, the input type is implicitly converted to a text data type. Дополнительные сведения см. в статье Преобразование типов данных (ядро СУБД). For more information, see Data Type Conversion (Database Engine).

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.