gpt4 book ai didi

tsql - 根据匹配的行从变量中删除字符串

转载 作者:行者123 更新时间:2023-12-05 01:27:26 25 4
gpt4 key购买 nike

我有一个小问题,我知道一些解决方案,但我不知道最好的方法(或不那么脏的意大利面方法)。

我有一个字符串变量,我需要在 like 表达式中使用它。

所以:

declare @a varchar(100) = 'my string to use as a join from'

select *
from table
where
column like '%' + @a + '%'

但是我不想要包含@a 变量的表中的任何行,我想要包含在@a 变量中的表中的任何行,所以:
select *
from table
where
@a like '%' + column + '%'

结果:
'my string'
'as a join from'

但是现在我需要从@a 变量中删除匹配的行。我怎样才能做到这一点?

(编辑)

预期结果:
@a = ' to use '

'my string'
'as a join from'

最佳答案

您可以更改 @a 的值选择中的每个匹配行:

select @a = replace(@a, MyColumn, '')
from MyTable
where @a like '%' + MyColumn + '%'

演示: http://www.sqlfiddle.com/#!3/187d6/5 (结果: @a = ' to use ')

如果您还想获得结果集,请使用临时表来存储匹配的行:
select MyColumn
into #Temp
from MyTable
where @a like '%' + MyColumn + '%'

-- @a = ' to use '
select @a = replace(@a, MyColumn, '') from #Temp

-- returns result set of words that matched
select * from #Temp

drop table #Temp

演示: http://www.sqlfiddle.com/#!3/187d6/13

关于tsql - 根据匹配的行从变量中删除字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10857876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com