微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

tsql – 使用T-SQL从字符串中删除指定的单词

我试图从表中的描述字段中删除某些字符串.为此我完成了这个功能
CREATE FUNCTION fnDescriptionClean 
(@strDescription varchar(50))
RETURNS varchar(50)
AS
BEGIN

declare @Return varchar(50)
declare @badword varchar(50)

set @badword = 'Front'
set @strDescription = CASE 

--Remove from mid string

WHEN @strDescription LIKE '% ' + @Badword +' %'  THEN REPLACE(@strDescription,' ' +  @Badword + ' ',' ')

--Remove from start of string

WHEN @strDescription LIKE @Badword +' %' THEN RIGHT(@strDescription,(len(@strDescription)-(len(@Badword)+1)))

--Remove from end of string

WHEN @strDescription LIKE '% ' + @Badword THEN LEFT(@strDescription,(len(@strDescription)-(len(@Badword)+1)))
ELSE @strDescription END 

set @badword = 'Right'
set @strDescription = CASE 

WHEN @strDescription LIKE '% ' + @Badword +' %'  THEN REPLACE(@strDescription,' ')
WHEN @strDescription LIKE @Badword +' %' THEN RIGHT(@strDescription,(len(@strDescription)-(len(@Badword)+1)))
WHEN @strDescription LIKE '% ' + @Badword THEN LEFT(@strDescription,(len(@strDescription)-(len(@Badword)+1)))
ELSE @strDescription END 

RETURN      @strDescription
end

我是sql编程的新手,希望对此有所改进.假设我想要一个包含“坏词”列表的表,我想从字符串中删除它并在清理描述时循环遍历它.

我应该指出,这个过程需要尽可能高效,因为我处理的是1500万条记录.

解决方法

你为什么不用 REPLACE
UPDATE tableName
SET columnName = REPLACE(columnName,'specific word','');

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐