替换SqlServer中第一个出现的单词

时间:2020-12-08 16:55:35

How to remove first occurrence of a word in SqlServer

如何删除SqlServer中第一个出现的单词

SELECT REPLACE('SELECT SELECT SELECT','SELECT','HELLO')

Required output is

要求输出

HELLO SELECT SELECT

    SELECT 'FLAGY FLAGY' = RIGHT('FLAGY FLAGY', Len('FLAGY FLAGY')-5)

4 个解决方案

#1


4  

Use CHARINDEX to find the first occurrence, STUFF to replace, and COALESCE in case the string is not found:

使用CHARINDEX查找第一个出现的事件、要替换的内容,如果没有找到字符串,则合并:

DECLARE @input varchar(1000)
SELECT @input='SELECT SELECT SELECT'

SELECT COALESCE(STUFF(@input, CHARINDEX('SELECT', @input), 6, 'HELLO'), @input)

#2


0  

Here is an example:

这是一个例子:

DECLARE @string VARCHAR(100) = 'SELECT SELECT SELECT'
DECLARE @word VARCHAR(100) = 'SELECT'
DECLARE @newWord VARCHAR(100) = 'WORD'
SELECT @string, stuff(@string, charindex(@word, @string), len(@word), @newWord)

#3


0  

You can use stuff to overwrite part of a string with another string. CharIndex tells you where the first occurance begins.

您可以使用某些东西用另一个字符串覆盖字符串的一部分。CharIndex告诉您第一次出现的位置。

DECLARE @Txt NVARCHAR(255) = 'SELECT SELECT SELECT'

SELECT  
    ISNULL(STUFF(@Txt, CHARINDEX('SELECT', @Txt), LEN('SELECT'), 'HELLO'), @Txt)
;

#4


0  

You can try this

你可以试试这个

DECLARE @string VARCHAR(20)
    SET @string = 'SELECT SELECT SELECT'
    SELECT 'HELLO ' + LEFT(@string, LEN(@string) - CHARINDEX(' ',@string))

#1


4  

Use CHARINDEX to find the first occurrence, STUFF to replace, and COALESCE in case the string is not found:

使用CHARINDEX查找第一个出现的事件、要替换的内容,如果没有找到字符串,则合并:

DECLARE @input varchar(1000)
SELECT @input='SELECT SELECT SELECT'

SELECT COALESCE(STUFF(@input, CHARINDEX('SELECT', @input), 6, 'HELLO'), @input)

#2


0  

Here is an example:

这是一个例子:

DECLARE @string VARCHAR(100) = 'SELECT SELECT SELECT'
DECLARE @word VARCHAR(100) = 'SELECT'
DECLARE @newWord VARCHAR(100) = 'WORD'
SELECT @string, stuff(@string, charindex(@word, @string), len(@word), @newWord)

#3


0  

You can use stuff to overwrite part of a string with another string. CharIndex tells you where the first occurance begins.

您可以使用某些东西用另一个字符串覆盖字符串的一部分。CharIndex告诉您第一次出现的位置。

DECLARE @Txt NVARCHAR(255) = 'SELECT SELECT SELECT'

SELECT  
    ISNULL(STUFF(@Txt, CHARINDEX('SELECT', @Txt), LEN('SELECT'), 'HELLO'), @Txt)
;

#4


0  

You can try this

你可以试试这个

DECLARE @string VARCHAR(20)
    SET @string = 'SELECT SELECT SELECT'
    SELECT 'HELLO ' + LEFT(@string, LEN(@string) - CHARINDEX(' ',@string))