Sql server 删除另一个字符串中包含的元素
我有一个列,其中的值为“DXB,KWI,COK” 我需要将这些列值与类似“DXB,LHR”的字符串进行比较。是否删除逗号分隔字符串中的列值 在使用字符串检查后,我想将列值更新为'KWI,COK'。? 有什么解决办法吗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?尝试使用替
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 返回 结束
通过使用这两个函数,我们可以很容易地获得值我真的不明白您在这里想要实现什么。你能用前后的陈述来说明你的问题吗。