如何删除sql中的一部分字符串

时间:2013-04-02 05:08:41

标签: sql sql-server tsql

请指导我如何从字符串中完全删除特定部分

这是我的字符串:

String greeting =Hello  #World# How Are You.

我想删除#World#部分。我尝试了以下但它对我不起作用,原因是##部分是动态的。

SELECT Replace(greeting, #World#, '')

3 个答案:

答案 0 :(得分:2)

declare @S varchar(50) = 'Hello  #World# How Are You.'

select stuff(@S,
             charindex('#', @S),
             charindex('#', @S, charindex('#', @S) + 1) - charindex('#', @S) + 1,
             '')

答案 1 :(得分:0)

试试这个: -

declare  @greeting nvarchar(max)
Set @greeting = 'Hello  #World# How Are You.'
Select replace(replace(@greeting,parsename(replace(replace(@greeting,'.','') ,'#','.'),2),''),'#','')

结果: -

Hello  How Are You.

如果#...#

中只有string这样的模式,上述解决方案就可以正常运行

答案 2 :(得分:0)

请尝试:

DECLARE @STR VARCHAR(50)
SET @Str = 'Hello  #World# How Are You.'

SELECT LEFT(@Str, CHARINDEX('#', @Str)-1)+
        RIGHT(@Str, CHARINDEX('#', REVERSE(@Str))-1)