RTRIM шаблон, а не все символы
У меня есть такие строки:
JAPANNO
CHINANO
BROOKLYNNO
Я хочу удалить "НЕТ" из всех строк. Я попробовал это:
тртрим (строка "НЕТ")
но например в случае с BROOKLYNNO я получил это:
Brookly.
Удаляет все Ns с конца. Как я могу удалить только шаблон "НЕТ"? Я знаю, что могу сделать это с помощью substr, но TechOnTheNet говорит, что есть способ удалить шаблон с помощью RTRIM, и я действительно хочу узнать, как это сделать.
Заранее спасибо!
3 ответа
Мы можем рассмотреть возможность замены регулярных выражений через REGEXP_REPLACE
, если вы даете контекст, когда NO
должны быть удалены и когда это не должно быть. Например, если вы хотите удалить NO
только с концов ваших строк мы могли бы сделать следующее:
UPDATE yourTable
SET col = REGEXP_REPLACE(col, 'no$', '', 1, 0, 'i');
Взгляните на это, может быть?
declare @string varchar(150) = 'BROOKLYNNO'
select LEN(@string)
select LEFT(@string,(LEN(@string)-2))
Затем вы можете обновить свой столбец с помощью выходных данных последнего оператора выбора, который обрезает последние две буквы строки.
Я полагаю, возможно, стоит спросить, как вы получаете данные, которые у вас есть здесь, строки с добавлением "НЕТ"?
Вы могли бы использовать TRIM(TRAILING ... FROM)
:
SELECT col_name,
REPLACE(TRIM(TRAILING '^' FROM REPLACE(col_name, 'NO', '^')), '^', 'NO') AS res
FROM tab;