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

Sql server 替换SqlServer中第一个出现的单词,sql-server,string,replace,Sql Server,String,Replace,如何删除SqlServer中第一个出现的单词 SELECT REPLACE('SELECT SELECT SELECT','SELECT','HELLO') 所需输出为 HELLO SELECT SELECT SELECT 'FLAGY FLAGY' = RIGHT('FLAGY FLAGY', Len('FLAGY FLAGY')-5) 使用CHARINDEX查找第一个匹配项、要替换的内容,并在找不到字符串时合并: DECLARE @input varchar(1000) SEL

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

SELECT REPLACE('SELECT SELECT SELECT','SELECT','HELLO')
所需输出为

HELLO SELECT SELECT

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

使用CHARINDEX查找第一个匹配项、要替换的内容,并在找不到字符串时合并:

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

SELECT COALESCE(STUFF(@input, CHARINDEX('SELECT', @input), 6, 'HELLO'), @input)
以下是一个例子:

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)
您可以使用来用另一个字符串覆盖字符串的一部分。告诉你第一次发生的地方

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

SELECT  
    ISNULL(STUFF(@Txt, CHARINDEX('SELECT', @Txt), LEN('SELECT'), 'HELLO'), @Txt)
;
你可以试试这个

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

谢谢你的提示。如果这个答案对你有帮助的话,请考虑一下。接受答案会奖励贡献者,并帮助跟随你的人找到最佳答案。