Функции для работы со строками
Для работы со строками в T-SQL можно применять следующие функции:
LEN : возвращает количество символов в строке. В качестве параметра в функцию передается строка, для которой надо найти длину:
LTRIM : удаляет начальные пробелы из строки. В качестве параметра принимает строку:
RTRIM : удаляет конечные пробелы из строки. В качестве параметра принимает строку:
CHARINDEX : возвращает индекс, по которому находится первое вхождение подстроки в строке. В качестве первого параметра передается подстрока, а в качестве второго — строка, в которой надо вести поиск:
PATINDEX : возвращает индекс, по которому находится первое вхождение определенного шаблона в строке:
LEFT : вырезает с начала строки определенное количество символов. Первый параметр функции — строка, а второй — количество символов, которые надо вырезать сначала строки:
RIGHT : вырезает с конца строки определенное количество символов. Первый параметр функции — строка, а второй — количество символов, которые надо вырезать сначала строки:
SUBSTRING : вырезает из строки подстроку определенной длиной, начиная с определенного индекса. Певый параметр функции — строка, второй — начальный индекс для вырезки, и третий параметр — количество вырезаемых символов:
REPLACE : заменяет одну подстроку другой в рамках строки. Первый параметр функции — строка, второй — подстрока, которую надо заменить, а третий — подстрока, на которую надо заменить:
REVERSE : переворачивает строку наоборот:
CONCAT : объединяет две строки в одну. В качестве параметра принимает от 2-х и более строк, которые надо соединить:
LOWER : переводит строку в нижний регистр:
UPPER : переводит строку в верхний регистр
SPACE : возвращает строку, которая содержит определенное количество пробелов
Например, возьмем таблицу:
И при извлечении данных применим строковые функции:
Функция CHARINDEX имеет синтаксис:
Здесь необязательный целочисленный параметр стартовая_позиция определяет позицию в строковом выражении, начиная с которой выполняется поиск. Если этот параметр опущен, поиск выполняется от начала строкового_выражения. Например, запрос
name |
---|
Kirishima |
Musashi |
Washington |
Следует отметить, что если искомая подстрока либо строковое выражение есть NULL , то результатом функции тоже будет NULL .
Следующий пример определяет позиции первого и второго вхождения символа a в имени корабля California:
Обратите внимание, что при определении второго символа в функции CHARINDEX используется стартовая позиция, которой является позиция следующего за первой буквой a символа — CHARINDEX(‘a’, name)+1 . Правильность результата — 2 и 10 — легко проверить.
Функция PATINDEX имеет следующий синтаксис:
Главное отличие этой функции от CHARINDEX заключается в том, что поисковая строка может содержать подстановочные знаки — % и _. При этом концевые знаки % являются обязательными. Например, использование этой функции в первом примере будет иметь вид
Как с помощью Mysql сделать поиск по вхождению в строке?
Вот есть пример, надо найти по полю [STR] вхождение "A":
2 ответа 2
Не очень понятно представление таблицы, если N и STR — это столбцы таблицы, то достаточно, как указано в комментариях, воспользоваться оператором LIKE
Если же [0] [N]"TABL",[STR]"A,B,C" и [1] [N]"CATL",[STR]"B,C" это строки по которым осуществляется поиск, то лучше воспользоваться регулярными выражениями, т.е. оператором RLIKE
Извини, помог человек из комментариев, раз он не пишет то напишу я.