如何删除SqlServer中第一次出现的单词
SELECT REPLACE('SELECT SELECT SELECT','SELECT','HELLO')
必需的输出是
HELLO SELECT SELECT
SELECT 'FLAGY FLAGY' = RIGHT('FLAGY FLAGY', Len('FLAGY FLAGY')-5)
答案 0 :(得分:4)
使用CHARINDEX查找第一个匹配项,要替换的是STUFF,如果找不到字符串,则使用COALESCE:
DECLARE @input varchar(1000)
SELECT @input='SELECT SELECT SELECT'
SELECT COALESCE(STUFF(@input, CHARINDEX('SELECT', @input), 6, 'HELLO'), @input)
答案 1 :(得分:0)
以下是一个例子:
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)
答案 2 :(得分:0)
您可以使用stuff用另一个字符串覆盖字符串的一部分。 CharIndex告诉你第一次出现的位置。
DECLARE @Txt NVARCHAR(255) = 'SELECT SELECT SELECT'
SELECT
ISNULL(STUFF(@Txt, CHARINDEX('SELECT', @Txt), LEN('SELECT'), 'HELLO'), @Txt)
;
答案 3 :(得分:0)
你可以试试这个
DECLARE @string VARCHAR(20)
SET @string = 'SELECT SELECT SELECT'
SELECT 'HELLO ' + LEFT(@string, LEN(@string) - CHARINDEX(' ',@string))