我有这样的字符串:
JAPANNO
CHINANO
BROOKLYNNO
我想从所有字符串中删除"NO"。我试过这个:
rtrim(string, 'NO'(
但例如在布鲁克林诺的情况下,我得到了这个:
布鲁克利。
它从末尾删除所有 N-s。如何仅删除"否"模式? 我知道我可以用substr做到这一点,但是TechOnTheNet说有一种方法可以使用RTRIM删除模式,我真的很想知道方法。
提前谢谢你!
我们可能会考虑通过REGEXP_REPLACE
进行正则表达式替换,如果您提供何时应该删除NO
以及何时不应该删除的上下文。 例如,如果您只想从字符串末尾删除NO
,我们可以执行以下操作:
UPDATE yourTable
SET col = REGEXP_REPLACE(col, 'no$', '', 1, 0, 'i');
您可以使用TRIM(TRAILING ... FROM)
:
SELECT col_name,
REPLACE(TRIM(TRAILING '^' FROM REPLACE(col_name, 'NO', '^')), '^', 'NO') AS res
FROM tab;
DBFiddle 演示
看看这个,也许?
declare @string varchar(150) = 'BROOKLYNNO'
select LEN(@string)
select LEFT(@string,(LEN(@string)-2))
然后,您可以使用 finalselect语句的输出更新列,该语句会修剪字符串中的最后两个字母。
我想可能值得问一下你是如何获得你在这里的数据,附加有"NO"的字符串?