RTRIM 一个模式,而不是所有的字符
RTRIM a pattern, not all the characters
我有这样的字符串:
JAPANNO
CHINANO
BROOKLYNNO
我想从所有字符串中删除 'NO'。我试过这个:
rtrim(字符串, 'NO')
但是以 BROOKLYNNO 为例,我得到了这个:
布鲁克利。
从末尾删除所有的N。如何只删除 'NO' 的模式?
我知道我可以用 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;
看看这个,也许吧?
declare @string varchar(150) = 'BROOKLYNNO'
select LEN(@string)
select LEFT(@string,(LEN(@string)-2))
然后,您可以使用最终 select 语句的输出更新您的列,该语句删除字符串中的最后两个字母。
我想可能值得一问你是如何获得这里的数据的,字符串附加有 "NO"?
我有这样的字符串:
JAPANNO
CHINANO
BROOKLYNNO
我想从所有字符串中删除 'NO'。我试过这个:
rtrim(字符串, 'NO')
但是以 BROOKLYNNO 为例,我得到了这个:
布鲁克利。
从末尾删除所有的N。如何只删除 'NO' 的模式? 我知道我可以用 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;
看看这个,也许吧?
declare @string varchar(150) = 'BROOKLYNNO'
select LEN(@string)
select LEFT(@string,(LEN(@string)-2))
然后,您可以使用最终 select 语句的输出更新您的列,该语句删除字符串中的最后两个字母。
我想可能值得一问你是如何获得这里的数据的,字符串附加有 "NO"?