Удалить символы в строке sql: sql server — ms-sql. Удалить лишние символы из строки
Содержание
TRIM (Transact-SQL) — SQL Server
Twitter
LinkedIn
Facebook
Адрес электронной почты
-
Статья -
- Чтение занимает 3 мин
-
Применимо к: SQL Server 2017 (14. x) и более поздних версий Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse Analytics
Удаляет символ пробела char(32)
или другие заданные символы в начале и конце строки.
Начиная с версии SQL Server 2022 (16.x), при необходимости можно удалить пробел char(32)
или другие указанные символы из начала и (или) конца строки.
Соглашения о синтаксисе Transact-SQL
Синтаксис
Синтаксис для SQL Server и Базы данных SQL Azure:
TRIM ( [ characters FROM ] string )
Синтаксис для SQL Server 2022 (16.x) и более поздних версий:
Важно!
Чтобы использовать ключевые слова LEADING
, TRAILING
или BOTH
, вам потребуется задать для уровня совместимости базы данных значение 160.
TRIM ( [ LEADING | TRAILING | BOTH ] [characters FROM ] string )
Синтаксис для Базы данных SQL Azure:
TRIM ( [ characters FROM ] string )
Синтаксис для Azure Synapse Analytics:
TRIM ( string )
Примечание
Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.
Аргументы
[ LEADING | TRAILING | BOTH ]
Область применения: SQL Server 2022 (16.x) и более поздних версий.
Необязательный первый аргумент указывает, какую сторону строки следует обрезать:
LEADING отвечает за удаление символов, указанных в начале строки.
TRAILING отвечает за удаление символов, указанных в конце строки.
BOTH (поведение по умолчанию) отвечает за удаление символов, указанных в начале и конце строки.
characters
Литерал, переменная или вызов функции любого типа данных, отличного от типа большого объекта (nvarchar
, varchar
, nchar
или char
), которые содержат удаляемые символы. Типы nvarchar(max)
и varchar(max)
не допускаются.
строка
Выражение любого символьного типа (nvarchar
, varchar
, nchar
или char
), из которого следует удалить символы.
Типы возвращаемых данных
Возвращает символьное выражение с типом аргумента string, в котором символ пробела char(32)
или другие заданные символы удалены с обеих сторон. Возвращает NULL
, если входная строка равна NULL
.
По умолчанию функция TRIM
удаляет символ пробела как в начале, так и в конце строки. Такая реакция на событие эквивалентна LTRIM(RTRIM(@string))
.
Чтобы включить необязательные позиционные аргументы LEADING
, TRAILING
или BOTH
в SQL Server 2022 (16.x), включите уровень совместимости баз данных 160
в базах данных, к которым вы подключаетесь при выполнении запросов.
- При использовании необязательного позиционного аргумента
LEADING
поведение эквивалентноLTRIM(@string, characters)
. - При использовании необязательного позиционного аргумента
TRAILING
поведение эквивалентноRTRIM(@string, characters)
.
Примеры
A. Удаление пробела с обеих сторон строки
В приведенном ниже примере удаляются пробелы перед словом test
и после него.
SELECT TRIM( ' test ') AS Result;
Результирующий набор:
test
Б. Удаление указанных символов с обеих сторон строки
В следующем примере представлен список возможных символов для удаления из строки.
SELECT TRIM( '.,! ' FROM ' # test .') AS Result;
Результирующий набор:
# test
В этом примере удалены только конечная точка, а также пробелы перед символом #
и после слова test
. Другие символы были проигнорированы, так как их не было в строке.
В. Удаление указанных символов из начала строки
Важно!
Чтобы использовать ключевые слова LEADING
, TRAILING
или BOTH
, вам потребуется задать для уровня совместимости базы данных значение 160.
В следующем примере из начала строки удаляется начальный символ .
перед словом test
.
SELECT TRIM(LEADING '.,! ' FROM ' .# test .') AS Result;
Результирующий набор:
# test .
Г. Удаление указанных символов из конца строки
Важно!
Чтобы использовать ключевые слова LEADING
, TRAILING
или BOTH
, вам потребуется задать для уровня совместимости базы данных значение 160.
В следующем примере из конца строки удаляется конечный символ .
после слова test
.
SELECT TRIM(TRAILING '.,! ' FROM ' .# test .') AS Result;
Результирующий набор:
.# test
Д. Удаление указанных символов из начала и конца строки
Важно!
Чтобы использовать ключевые слова LEADING
, TRAILING
или BOTH
, вам потребуется задать для уровня совместимости базы данных значение 160.
В следующем примере символы 123
удаляются из начала и конца строки 123abc123
.
SELECT TRIM(BOTH '123' FROM '123abc123') AS Result;
Результирующий набор:
abc
См. также раздел
- LEFT (Transact-SQL)
- LTRIM (Transact-SQL)
- RIGHT (Transact-SQL)
- RTRIM (Transact-SQL)
- STRING_SPLIT (Transact-SQL)
- SUBSTRING (Transact-SQL)
- Строковые функции (Transact-SQL)
REGEXP_REPLACE ФУНКЦИЯ — Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite
В этом учебном пособии вы узнаете, как использовать функцию REGEXP_REPLACE Oracle/PLSQL с синтаксисом и примерами.
Описание
Функция Oracle/PLSQL REGEXP_REPLACE является расширением функции REPLACE. Эта функция, введенная в Oracle 10g, позволит вам заменить последовательность символов в строке другим набором символов, используя сопоставление шаблонов регулярных выражений.
Синтаксис
Синтаксис функции Oracle/PLSQL REGEXP_REPLACE :
REGEXP_REPLACE( string, pattern [, replacement_string [, start_position [, nth_appearance [, match_parameter ] ] ] ] )
Параметры или аргументы
string
Строка для поиска. ]
replacement_string
Необязательный. Соответствующие шаблоны в строке будут заменены на replace_string. Если параметр replacement_string опущен, то функция просто удаляет все совпадающие шаблоны и возвращает полученную строку.
start_position
Необязательный. Это позиция в строке, откуда начнется поиск. Если этот параметр опущен, по умолчанию он равен 1, который является первой позицией в строке.
nth_appearance
Необязательный. Это n-й вид шаблона в строке. Если этот параметр опущен, по умолчанию он равен 1, который является первым вхождением шаблона в строке. Если вы укажете 0 для этого параметра, все вхождения шаблона в строке будут заменены.
match_parameter
Необязательный. Это позволяет изменять поведение соответствия для условия REGEXP_REPLACE. Это может быть комбинацией следующих значений:
Значение | Описание | ||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
‘c’ | Выполняет чувствительное к регистру согласование. | ||||||||||||||||||||||||||||||||||||||
‘i’ | Выполняет не чувствительное к регистру согласование. | ||||||||||||||||||||||||||||||||||||||
‘n’ | Позволяет период символа (. , а затем найдет первое слово в соответствии с (\S*). Затем функция заменит это первое слово на ‘Google’.Пример совпадения цифрРассмотрим пример, как мы будем использовать функцию REGEXP_REPLACE для сопоставления шаблону цифровых символов. Например: Oracle PL/SQL SELECT REGEXP_REPLACE (‘1, 4, и 10 числа для примера.’, ‘\d’, ‘@’)
Этот пример заменит все числа в строке, как указано в шаблоне \d, на символ @. Мы могли бы изменить наш шаблон для поиска только двухзначных чисел. Например: Oracle PL/SQL SELECT REGEXP_REPLACE (‘1, 4, и 10 числа для примера’, ‘(\d)(\d)’, ‘@’)
Этот пример заменит число, которое имеет две цифры, как указано в шаблоне (\d)(\d). В этом случае он пропустит числовые значения 2 и 5 и заменит 10 символом @. Теперь рассмотрим, как мы будем использовать функцию REGEXP_REPLACE со столбцом таблицы для замены двухзначных чисел. Oracle PL/SQL SELECT REGEXP_REPLACE (address, ‘(\d)(\d)’, ‘Str’)
В этом примере мы заменим все двузначные значения поля address в таблице contacts на значение ‘Str’. Пример сопоставления нескольких альтернатив.Следующий пример, который мы рассмотрим, включает использование | шаблон. | шаблон используется как «ИЛИ», чтобы указать несколько альтернатив. Например: Oracle PL/SQL SELECT REGEXP_REPLACE (‘AeroSmith’, ‘a|e|i|o|u’, ‘R’)
Этот пример вернет ‘ARrRSmRth’, потому что он ищет первую гласную (a, e, i, o или u) в строке. Поскольку мы не указали значение match_parameter, функция REGEXP_REPLACE будет выполнять поиск с учетом регистра, что означает, что ‘A’ в ‘AeroSmith’ не будет сопоставляться. Мы могли бы изменить наш запрос, чтобы выполнить поиск без учета регистра следующим образом: Oracle PL/SQL SELECT REGEXP_REPLACE (‘AeroSmith’, ‘a|e|i|o|u’, ‘R’, 1, 0, ‘i’)
Теперь, поскольку мы указали match_parameter = ‘i’, запрос заменит ‘A’ в строке. На этот раз ‘A’ в ‘AeroSmith’ сопоставится с шаблоном. Заметим также, что мы указали 5-й параметр как 0, чтобы были заменены все вхождения. Теперь рассмотри, как вы будете использовать эту функцию со столбцом. Итак, допустим, у нас есть таблица contact со следующими данными:
Теперь давайте запустим следующий запрос: Oracle PL/SQL SELECT contact_id, last_name, REGEXP_REPLACE (last_name, ‘a|e|i|o|u’, ‘R’, 1, 0, ‘i’) AS «New Name»
Запрос вернет следующие результаты:
Пример совпадений на основе параметра nth_occurrenceСледующий пример, который мы рассмотрим, включает параметр nth_occurrence. Параметр nth_occurrence позволяет вам выбрать, какое вхождение шаблона вы хотите заменить в строке. Первое вхождениеРассмотрим, как заменить первое вхождение шаблона в строке. Например: Oracle PL/SQL SELECT REGEXP_REPLACE (‘Scorpions’, ‘a|e|i|o|u’, ‘Z’, 1, 1, ‘i’)
Этот пример заменит третий символ (‘e’) в ‘Scorpions’, потому что он заменяет первое вхождение гласного (a, e, i, o или u) в строке. Второе вхождениеЗатем мы выберем для второго вхождения шаблона в строку. Например: Oracle PL/SQL SELECT REGEXP_REPLACE (‘Scorpions’, ‘a|e|i|o|u’, ‘Z’, 1, 2, ‘i’)
Этот пример заменит шестой символ (‘i’) в ‘Scorpions’, потому что он заменяет второе вхождение гласного (a, e, i, o или u) в строке. Третье вхождениеНапример: Oracle PL/SQL SELECT REGEXP_REPLACE (‘Scorpions’, ‘a|e|i|o|u’, ‘Z’, 1, 3, ‘i’)
Этот пример заменит седьмой символ (‘o’) в ‘Scorpions’, потому что он заменяет третье вхождение гласного (a, e, i, o или u) в строке. SQL Удаление символов из строки с примерами [РЕШЕНО]Содержание Реклама SQL указывает строки, заключая их в одинарные кавычки, например, «учебник по SQL», SQL допускает различные функции для строк символов, такие как объединение , извлечение подстрок, определение длины строк и многое другое для выполнения различных операций со строками. Чтобы удалить символы из строк в SQL, нам нужно изучить некоторые основные функции работы со строками SQL, которые будут использоваться для удаления символов на основе различных заданных условий.
Различные функции для удаления символов из строки в SQL
1. Функция SQL LEN()Функция SQL SERVER LEN() используется для определения длины заданной строки. Она принимает только один параметр — строку, длину которой необходимо найти. в базе данных оракула. LENGTH() используется в базе данных Oracle. ТАКЖЕ ЧИТАЙТЕ: Как использовать оператор SQL IF в SELECT? [РЕШЕНО] Пример 1. Напишите SQL-запрос для определения длины строки «Учебники по SQL» ВЫБРАТЬ LEN («Учебники по SQL») AS «Функция LEN()» ВЫВОД: 2 23 Функция SQL LEFT() Функция SQL LEFT() используется для извлечения указанного количества символов из левой части заданной строки Пример 2: Напишите запрос SQL для извлечения первых трех символов из левой части данной строки ‘функция строки SQL’ SELECT LEFT('строковая функция SQL', 3) AS 'LEFT() function' ВЫВОД: Объявление
Функция SQL RIGHT() 903 RIGHT() 90 используется для извлечения указанного количества символов из правой части заданной строки Пример 3. Напишите запрос SQL для извлечения восьми символов из правой части заданной строки ‘функция строки SQL’ SELECT RIGHT('строка SQL функция», 8) КАК функция «ПРАВО()» ВЫВОД:
4. Функция SQL CHARINDEX()Функция SQL CHARINDEX() используется для поиска позиции указанного символа или подстроки в заданной строке. Если символ или подстрока не найдены, будет возвращено 0 Пример 4: Напишите запрос SQL, чтобы найти подстроку «SQL» в строке «Строковая функция SQL» SELECT CHARINDEX('SQL', 'Строковая функция SQL', 0) AS «Функция CHARINDEX()» В приведенном выше запросе «функция строки SQL» — это строка, в которой подстрока «SQL» будет искать и находить индекс с позиции «0», начиная со строки 9.0003 ТАКЖЕ ПРОЧИТАЙТЕ: Объяснение функций ранжирования SQL [Практические примеры] ВЫВОД:
5. Функция SQL REPLACE()()str используется для замены всех вхождений функции SQL REPLACE заданная строка с новой указанной подстрокой, Реклама обратите внимание, что функция SQL REPLACE() чувствительна к регистру Пример 5. Напишите запрос SQL для замены подстроки «строка» на «числовую» подстроку в строке «строка SQL». функции’ SELECT REPLACE('функции строки SQL', 'строка', 'числовой') AS 'функция REPLACE()' В приведенном выше запросе ‘функция строки SQL’ — это строка, в которой будет заменена «числовой» строкой ВЫВОД:
6. Функция SQL TRIM()Функция TRIM() используется для удаления символа пробела ИЛИ других указанных символов из начала или конца строки. нить. По умолчанию функция TRIM() удаляет начальные и конечные пробелы из строки. Объявление Пример 6. Напишите SQL-запрос для удаления начальных и конечных пробелов из заданной строки ‘ Строковые функции SQL ‘ SELECT TRIM(’ Строковая функция SQL ’ ) AS ’TRIM() function’; ВЫВОД:
7. Функция SQL SUBSTRING()Функция SQL SUBSTRING() используется для извлечения указанного количества символов из заданной начальной позиции в заданной строке. Пример 7: Напишите SQL-запрос для извлечения SQL из «строковой функции SQL» SELECT SUBSTRING('функция строки SQL', 1, 3) AS 'функция SUBSTRING()' В приведенном выше запросе ‘функция строки SQL’ представляет собой извлекаемую строку из первых символов индекса 1 ТАКЖЕ ЧИТАТЬ : Golang SQL Tutorial [Операция CRUD] ВЫВОД:
Некоторые практические примерыПример 1: SQL удаляет символы из строки сразу после символаЧтобы сначала удалить символы сразу после указанного символа найти индекс указанного символа с помощью функции CHARINDEX() в заданной строке, а затем извлечь оставшиеся символы из строки с помощью функции LEFT() Пример 8: Напишите SQL-запрос для удаления всех правильных символов после символа ‘,’ в данной строке ‘SQL, Functions’ SELECT LEFT('SQL, Function', CHARINDEX(',', 'SQL,Function') - 1) AS 'Удалить символы из строки сразу после символа '
ВЫВОД:
Пример 2: SQL удаляет определенные символы из строкиС функцией SQL TRIM() нам нужно указать набор символов, которые нужно удалить в одинарной кавычке, а затем строку, из которой символы должны быть удалены Пример 9: Напишите SQL-запрос для удаления SQL из строки ‘SQLfunctionSQL SELECT TRIM('SQL' FROM 'SQLfunctionSQL') as 'SQL удаляет определенные символы из строки'; В приведенном выше SQL-запросе функция SQL TRIM() применяется для обрезки указанных символов «SQL» из данной строки «SQLfunctionSQL» [РЕШЕНО] ВЫВОД: С функцией SQL REPLACE() для удаления символов из заданной строки, сначала нам нужно указать строку, из которой должны быть удалены символы, а затем указать символы, которые будут удален как второй аргумент, третий аргумент должен быть пустым, так как мы хотим удалить символы Пример 10: Напишите SQL-запрос для удаления «SQL» из заданной строки «SQLfunctionSQL» SELECT REPLACE('SQLfunctionSQL', 'SQL', '') as 'SQL удаляет определенные символы из строки'; В приведенном выше SQL-запросе функция SQL REPLACE() применяется для замены указанных символов «SQL» на пробел «» в заданной строке «SQLfunctionSQL» удалить символы из строки left Чтобы удалить символы из строки left, сначала нам нужно извлечь левую строку из заданной строки с помощью функции SQL SUBSTRING() и CHARINDEX() После извлечения самой левой строки для удаления символов из оставшейся строки мы можем использовать функцию SQL LEFT() в сочетании с функцией SQL LEN() строка слева ‘SQL’ от заданной строки ‘Строковые функции SQL’ SELECT LEFT(SUBSTRING('Строковые функции SQL', 1, CHARINDEX(' ', 'Строковые функции SQL')), LEN(SUBSTRING('Строковые функции SQL' , 1, CHARINDEX(' ', 'Строковые функции SQL'))) - 2) AS 'Удалить первые 2 символа'
ТАКЖЕ ПРОЧИТАЙТЕ: Объяснение хранимой процедуры SQL [Практические примеры] ВЫВОД:
Пример 4: SQL удаляет символы из строки справаЧтобы сначала удалить символы из строки справа, правильная строка из заданной строки с помощью функции SQL SUBSTRING() и CHARINDEX() После извлечения самой правой строки для удаления символов из строки справа мы можем использовать функцию SQL RIGHT() в сочетании с функцией SQL LEN() Пример 12. Напишите запрос SQL для удаления двух самых правых символов из строки справа ‘Строковые функции’ заданной строки ‘Строковые функции SQL’ SELECT LEFT('Строковые функции SQL', LEN(SUBSTRING('Строковые функции SQL', CHARINDEX(' ', 'Строковые функции SQL', CHARINDEX(' ', ' Строковые функции SQL')), LEN('Строковые функции SQL'))) - 2) AS 'Удалить символы из строки справа' ВЫВОД:
Пример 5: SQL удаляет последний символ из строкиЕсть два способа удалить последний символ из строки в SQL
Пример 12. Напишите SQL-запрос для удаления последнего символа «s» из заданной строки «Строковые функции SQL» SELECT SUBSTRING('Строковые функции SQL', 1, LEN('Строковые функции SQL') - 1) AS 'SQL удаляет последний символ из строки' ВЫВОД: SELECT LEFT('Строковые функции SQL', LEN('Строковые функции SQL') - 1) AS 'SQL удалить последний символ из строки' ВЫВОД:
Пример 6: SQL удаляет последний символ из столбцаРассмотрите таблицу учеников школьной базы данных, чтобы удалить последний символ из столбца имени ученика Как упоминалось выше, мы можем удалить последний символ из столбца имени ученика. строка двумя способами либо с помощью функций SUNSTRING() и LEN(), либо с помощью функций LEFT() и LEN() Пример 13. Напишите SQL-запрос для удаления последнего символа значения столбца имени учащегося ВЫВОД: ВЫБЕРИТЕ ЛЕВЫЙ (имя ученика, ДЛСТР (имя ученика) - 1) КАК «Удалить последний символ» ИЗ tblstudent ВЫВОД:
Пример 7: SQL удаляет последние 4 символа из строкиЕсть два способа удалить последние 4 символа из строки в SQL
Пример 14. Запись SQL-запроса к последним четырем символам заданной строки ‘Строковые функции SQL’ SELECT SUBSTRING('Строковые функции SQL', 1, LEN('Строковые функции SQL') - 4) AS 'Удалить последние 4 символа ' ОТ tblstudent ВЫВОД: SELECT LEFT('Строковые функции SQL', LEN('Строковые функции SQL') - 4) AS 'Удалить последние 4 символа' из конца строки
4 Вы можете использовать функцию REPLACE («Ваша строка с названием города здесь», «название города», «xyz») --Полученные результаты «Ваша строка с xyz здесь» Если вы примените это к столбцу таблицы, где SELECT REPLACE(stringColumnName, cityName, '') ИЗ вашего стола Или если вы хотите удалить SELECT REPLACE(stringColumnName, 'cityName', '') ИЗ вашей таблицы РЕДАКТИРОВАТЬ: Поскольку вы предоставили более подробную информацию, функция |