Sql server 删除另一个字符串中包含的元素

Sql server 删除另一个字符串中包含的元素,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有一个列,其中的值为“DXB,KWI,COK” 我需要将这些列值与类似“DXB,LHR”的字符串进行比较。是否删除逗号分隔字符串中的列值 在使用字符串检查后,我想将列值更新为'KWI,COK'。? 有什么解决办法吗 Airports |id _____________________ dxb,cok,kwi |1 cok,dxb |2 kwi,dxb |3 机场列id 1将更新为'COK,DXB'删除比较逗号分隔值中的DXB?尝试使用替

我有一个列,其中的值为“DXB,KWI,COK”

我需要将这些列值与类似“DXB,LHR”的字符串进行比较。是否删除逗号分隔字符串中的列值

在使用字符串检查后,我想将列值更新为'KWI,COK'。? 有什么解决办法吗

Airports         |id
_____________________
dxb,cok,kwi     |1
cok,dxb         |2
kwi,dxb         |3

机场列id 1将更新为'COK,DXB'删除比较逗号分隔值中的DXB?

尝试使用
替换
功能:

CREATE TABLE #Test(
  Airports varchar(256),
  id int
)

INSERT #Test(Airports,id)VALUES('dxb,cok,kwi',1)
INSERT #Test(Airports,id)VALUES('cok,dxb',2)
INSERT #Test(Airports,id)VALUES('kwi,dxb',3)
INSERT #Test(Airports,id)VALUES('kwi,dxb,zxc',4)
INSERT #Test(Airports,id)VALUES('dxb',5)
INSERT #Test(Airports,id)VALUES('aaa,bbb',6)

SELECT *,REPLACE(REPLACE(REPLACE(Airports,'dxb,',''),',dxb',''),'dxb','')
FROM #Test

UPDATE #Test
SET
  Airports=REPLACE(REPLACE(REPLACE(Airports,'dxb,',''),',dxb',''),'dxb','')
WHERE Airports LIKE '%dxb%'

SELECT *
FROM #Test

DROP TABLE #Test

ALTER函数[dbo].[SplitString] (
@输入NVARCHAR(最大值), @字符字符(1) ) 返回@Output表( 项目NVARCHAR(1000) ) 作为 开始 声明@StartIndex INT、@EndIndex INT

  SET @StartIndex = 1
  IF SUBSTRING(@Input, LEN(@Input) - 1, LEN(@Input)) <> @Character
  BEGIN
        SET @Input = @Input + @Character
  END

  WHILE CHARINDEX(@Character, @Input) > 0
  BEGIN
        SET @EndIndex = CHARINDEX(@Character, @Input)

        INSERT INTO @Output(Item)
        SELECT SUBSTRING(@Input, @StartIndex, @EndIndex - 1)

        SET @Input = SUBSTRING(@Input, @EndIndex + 1, LEN(@Input))
  END

  RETURN
SET@StartIndex=1
如果子字符串(@Input,LEN(@Input)-1,LEN(@Input))@字符
开始
设置@Input=@Input+@字符
结束
而CHARINDEX(@Character,@Input)>0
开始
设置@EndIndex=CHARINDEX(@Character,@Input)
插入@Output(项目)
选择子字符串(@Input、@StartIndex、@EndIndex-1)
设置@Input=SUBSTRING(@Input,@EndIndex+1,LEN(@Input))
结束
返回
结束

ALTER函数[dbo]。[DistinctSplitString] ( @string1 nvarchar(最大值), @string2 nvarchar(最大值), @字符(1)

) 返回@Output表( 项目NVARCHAR(1000) ) 作为 开始
插入@output 从dbo.SplitString(@string1,@chars)中选择SP1.Item作为SP1 将dbo.SplitString(@string2,@chars)作为SP2左连接 在SP1.Item=SP2.Item上 其中sp2.Item为NULL 返回 结束


通过使用这两个函数,我们可以很容易地获得值

我真的不明白您在这里想要实现什么。你能用前后的陈述来说明你的问题吗。