Как из строки убрать все символы пунктуации sql
Перейти к содержимому

Как из строки убрать все символы пунктуации sql

  • автор:

Удаление ненужных символов в строке

Есть в таблице столбец ФИО, к примеру Иванов Иван Иванович (101). Необходимо удалить (101)
есть такая возможность?

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Удаление ненужных символов в строке
#include <iostream> #include <string> using namespace std; char uppercase(char chr) < .

Удаление ненужных символов
Здравствуйте, у меня такой вопрос как можно удалить все от <!— и до —> количество символов не.

Удаление из строки ненужных символов
Доброй ночи всем! Мне нужно удалить из строки знак " и знак = Я решил это так: strW=.

удаление ненужных символов в тексте
добрый день есть регулярка с заменой в тексте $text = preg_replace(‘/\]+)\]/’,’ ‘, $text); она.

1634 / 1135 / 171
Регистрация: 23.07.2010
Сообщений: 6,713
какой вопрос — такой ответ: можно.
168 / 142 / 1
Регистрация: 01.04.2010
Сообщений: 474

pincet, злобный ты

Claster, числа всегда в конце фамилии, и всегда трёхзначное число?

685 / 241 / 13
Регистрация: 02.04.2009
Сообщений: 692

Claster, если у большинства в данном атрибуте есть свой «(номер)», находишь символ «(» и затем выцепляешь всё что до этого символа

91 / 56 / 12
Регистрация: 02.10.2008
Сообщений: 550
Да номер всегда трехзначный. Буду очень рад примеру как данное можно реализовать
1113 / 758 / 183
Регистрация: 27.11.2009
Сообщений: 2,264

ЦитатаСообщение от Claster Посмотреть сообщение

Да номер всегда трехзначный. Буду очень рад примеру как данное можно реализовать

SELECT LEFT(ФИО,LEN(ФИО)-5);

91 / 56 / 12
Регистрация: 02.10.2008
Сообщений: 550

Прошу прощения в скобках может быть более 3 символов. Необходимо удалить все что идет в скобках включая и сами скобки

1634 / 1135 / 171
Регистрация: 23.07.2010
Сообщений: 6,713

select left(fio,charindex('(',fio)-1)

91 / 56 / 12
Регистрация: 02.10.2008
Сообщений: 550
то что надо, спасибо.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Удаление ненужных символов/текста
Здравствуйте, уважаемые форумчане! Задача состоит в следующем. Есть определенный бланк на котором.

Проверка длины и удаление ненужных символов
Добрый день! Работаю с CRM. У меня есть идентификатор, который состоит из названия опроса и.

Нахождение и удаление ненужных символов пунктуации в столбце
Доброго времени суток! Помогите, пожалуйста, создать формулу ( с помощью функция таких как.

Удаление ненужных пробелов в строке и замена буквосочетаний
Написать процедуры обработки строковой переменной: удаление ненужных пробелов и замена.

TRIM (Transact-SQL)

Удаляет символ пробела char(32) или другие заданные символы в начале и конце строки.

При необходимости удаляет пробел char(32) или другие указанные символы из начальной, конечной или обеих сторон строки.

Начиная с SQL Server 2022 (16.x), при необходимости удаляет пробел char(32) или другие указанные символы из начала, конца или обеих сторон строки.

Синтаксис

Синтаксис SQL Server 2022 (16.x) и более ранних версий, База данных SQL Azure и Azure Synapse Analytics:

TRIM ( [ characters FROM ] string ) 

Синтаксис ДЛЯ SQL Server 2022 (16.x) и более поздних версий, Управляемый экземпляр SQL Azure и Microsoft Fabric:

Для использования LEADING TRAILING ключевое слово базы BOTH данных требуется 160 уровень совместимости базы данных.

TRIM ( [ LEADING | TRAILING | BOTH ] [characters FROM ] string ) 

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

[ LEADING | TRAILING | BOTH ]

Область применения: SQL Server 2022 (16.x) и более поздних версий, Управляемый экземпляр SQL Azure и Microsoft Fabric:

Необязательный первый аргумент указывает, какую сторону строки следует обрезать:

  • LEADING удаляет символы, указанные в начале строки.
  • TRAILING удаляет символы, указанные в конце строки.
  • BOTH (поведение по умолчанию) удаляет символы, указанные в начале и конце строки.
characters

Литерал, переменная или вызов функции любого типа символов, отличного от большого объекта (nvarchar, varchar, nchar или char), которые содержат удаляемые символы. Типы nvarchar(max) и varchar(max) не допускаются.

string

Выражение любого типа символа (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) .

Примеры

А. Удаление пробела с обеих сторон строки

В приведенном ниже примере удаляются пробелы перед словом test и после него.

SELECT TRIM( ' test ') AS Result; 
test 

B. Удаление указанных символов с обеих сторон строки

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

SELECT TRIM( '. ' FROM ' # test .') AS Result; 
# test 

В этом примере удалены только конечная точка, а также пробелы перед символом # и после слова test . Другие символы были проигнорированы, так как их не было в строке.

C. Удаление указанных символов из начала строки

Для использования LEADING TRAILING ключевое слово базы BOTH данных требуется 160 уровень совместимости базы данных.

В следующем примере из начала строки удаляется начальный символ . перед словом test .

SELECT TRIM(LEADING '. ' FROM ' .# test .') AS Result; 
# test . 

D. Удаление указанных символов из конца строки

Для использования 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; 

Связанный контент

  • LEFT (Transact-SQL)
  • LTRIM (Transact-SQL)
  • RIGHT (Transact-SQL)
  • RTRIM (Transact-SQL)
  • STRING_SPLIT (Transact-SQL)
  • SUBSTRING (Transact-SQL)
  • Строковые функции (Transact-SQL)

Обратная связь

Были ли сведения на этой странице полезными?

Обратная связь

Отправить и просмотреть отзыв по

Как убрать все вхождения сочетания символов из строки SQL?

но он убирает только первое вхождение, второе-третье остаётся. Как сделать лучше?

Отслеживать

31.1k 3 3 золотых знака 20 20 серебряных знаков 40 40 бронзовых знаков

задан 16 окт 2020 в 8:10

boniphacia_ boniphacia_

Какая версия SQL Server?

16 окт 2020 в 12:05

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

UPDATE test SET csv = ( SELECT STRING_AGG(value, ',') FROM STRING_SPLIT(test.csv, ',') WHERE value NOT LIKE '_AA_' ); 

Отслеживать

ответ дан 16 окт 2020 в 9:26

31.1k 3 3 золотых знака 20 20 серебряных знаков 40 40 бронзовых знаков

Классное решение. Единственно, что порядок сборки не гарантируется.

16 окт 2020 в 12:40

@SergeyMoiseenko 1) Для перетасовки исходного относительного положения элементов — на самом деле надо постараться. 2) STRING_SPLIT имеет возможность WITHIN GROUP ORDER BY. Если позиционность имеет значение — следует использовать позиционный формат, включающий компоненту номера записи в наборе, а не строковый тип.

REGEXP_REPLACE ФУНКЦИЯ

Функция Oracle/PLSQL REGEXP_REPLACE является расширением функции REPLACE. Эта функция, введенная в Oracle 10g, позволит вам заменить последовательность символов в строке другим набором символов, используя сопоставление шаблонов регулярных выражений.

Синтаксис

Синтаксис функции Oracle/PLSQL REGEXP_REPLACE :

REGEXP_REPLACE( string, pattern [, replacement_string [, start_position [, nth_appearance [, match_parameter ] ] ] ] )

Параметры или аргументы

string
Строка для поиска. Это могут быть CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB или NCLOB.

pattern
Шаблон. Регулярное выражение для сопоставления. Это может быть комбинацией следующих значений:

Значение Описание
^ Соответствует началу строки. При использовании match_parameter с m , соответствует началу строки в любом месте в пределах выражения.
$ Соответствует концу строки. При использовании match_parameter с m , соответствует концу строки в любом месте в пределах выражения.
* Соответствует нолю или более вхождений.
+ Соответствует одному или более вхождений.
? Соответствует нолю или одному вхождению.
. Соответствует любому символу, кроме NULL.
| Используется как «OR», чтобы указать более одной альтернативы.
[ ] Используется для указания списка совпадений, где вы пытаетесь соответствовать любому из символов в списке.
[^ ] Используется для указания списка nonmatching, где вы пытаетесь соответствовать любому символу, за исключением тех кто в списке.
( ) Используется для групповых выражений в качестве подвыражений.
Соответствует m раз.
Соответствие как минимум m раз.
Соответствие как минимум m раз, но не более n раз.
\n n представляет собой число от 1 до 9. Соответствует n -му подвыражению находящемуся в ( ) перед \n.
[..] Соответствует одному сопоставлению элемента, который может быть более одного символа.
[::] Соответствует классу символов.
[==] Соответствует классу эквивалентности
\d Соответствует цифровому символу.
\D Соответствует не цифровому символу.
\w Соответствует текстовому символу.
\W Соответствует не текстовому символу.
\s Соответствует символу пробел.
\S Соответствует не символу пробел.
\A Соответствует началу строки или соответствует концу строки перед символом новой строки.
\Z Соответствует концу строки.
*? Соответствует предыдущему шаблону ноль или более вхождений.
+? Соответствует предыдущему шаблону один или более вхождений.
?? Соответствует предыдущему шаблону ноль или одному вхождению.
? Соответствует предыдущему шаблону n раз.
? Соответствует предыдущему шаблону, по меньшей мере n раз.
? Соответствует предыдущему шаблону, по меньшей мере n раз, но не более m раз.

replacement_string
Необязательный. Соответствующие шаблоны в строке будут заменены на replace_string . Если параметр replacement_string опущен, то функция просто удаляет все совпадающие шаблоны и возвращает полученную строку.

start_position
Необязательный. Это позиция в строке, откуда начнется поиск. Если этот параметр опущен, по умолчанию он равен 1, который является первой позицией в строке.

nth_appearance
Необязательный. Это n -й вид шаблона в строке. Если этот параметр опущен, по умолчанию он равен 1, который является первым вхождением шаблона в строке. Если вы укажете 0 для этого параметра, все вхождения шаблона в строке будут заменены.

match_parameter
Необязательный. Это позволяет изменять поведение соответствия для условия REGEXP_REPLACE. Это может быть комбинацией следующих значений:

Значение Описание
‘c’ Выполняет чувствительное к регистру согласование.
‘i’ Выполняет не чувствительное к регистру согласование.
‘n’ Позволяет период символа (.) для соответствия символа новой строки. По умолчанию, период метасимволы.
‘m’ Выражение допускает, что есть несколько строк, где ^ это начало строки, а $ это конец строки, независимо от позиции этих символов в выражении. По умолчанию предполагается, что выражение в одной строке.
‘x’ Игнорируются символы пробелов. По умолчанию, символы пробелов совпадают, как и любой другой символ.

Функция REGEXP_REPLACE возвращает строковое значение.

Примечание

  • Если для параметра match_parameter имеются противоречивые значения, функция REGEXP_REPLACE будет использовать последнее значение.
  • См. также функцию REPLACE.

Применение

Функция REGEXP_REPLACE может использоваться в следующих версиях Oracle/PLSQL:

  • Oracle 12c, Oracle 11g, Oracle 10g

Пример совпадения с первым словом

Рассмотрим пример использования функции REGEXP_REPLACE для замены первого слова в строке.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *