2

我有这样的字符串:

JAPANNO
CHINANO
BROOKLYNNO

我想从所有字符串中删除“否”。我试过这个:

rtrim(字符串,'否')

但例如在布鲁克林诺的情况下,我得到了这个:

布鲁克利。

它从最后删除所有 N。如何仅删除“否”的模式?我知道我可以用 substr 做到这一点,但 TechOnTheNet 说有一种方法可以用 RTRIM 删除模式,我真的很想知道方法。

先感谢您!

4

3 回答 3

1

REGEXP_REPLACE如果您给出何时NO应该删除以及何时不应该删除的上下文,我们可能会考虑通过 进行正则表达式替换。例如,如果您只想NO从字符串的末端删除,我们可以执行以下操作:

UPDATE yourTable
SET col = REGEXP_REPLACE(col, 'no$', '', 1, 0, 'i');
于 2018-06-11T14:05:07.423 回答
0

你可以使用TRIM(TRAILING ... FROM)

SELECT col_name,
 REPLACE(TRIM(TRAILING '^' FROM REPLACE(col_name, 'NO', '^')), '^', 'NO') AS res
FROM tab;

DBFiddle 演示

于 2018-06-11T14:15:09.343 回答
0

看看这个,也许?

declare @string varchar(150) = 'BROOKLYNNO'
select LEN(@string)
select LEFT(@string,(LEN(@string)-2))

然后,您可以使用最终选择语句的输出更新您的列,该语句会修剪字符串中的最后两个字母。

我想可能值得问一下你是如何获得这里的数据的,字符串附加了“N​​O”?

于 2018-06-11T14:17:29.853 回答