如下:
有表TableTemp 包含列 ColTemp,内有一行数据,为'123456789ABCDEFGHIGK' 有变量@TempValue
可能等于'1234,0000,ADCF'
也可能等于'ABCD,8888,9999'
又可能等于'7777,HIGK,ASDF'
变量结构如此,但不一定是三组,有可能是多组。 问题: 在变量中的值,任意一组包含在行数据内,即可满足条件,我该如何实现检索呢?如何去写SQL呢? 因为可能变量内存在多组,有可能是多达上百组的数值,所以不建议用Link, 小弟初学,请大家帮忙。
有表TableTemp 包含列 ColTemp,内有一行数据,为'123456789ABCDEFGHIGK' 有变量@TempValue
可能等于'1234,0000,ADCF'
也可能等于'ABCD,8888,9999'
又可能等于'7777,HIGK,ASDF'
变量结构如此,但不一定是三组,有可能是多组。 问题: 在变量中的值,任意一组包含在行数据内,即可满足条件,我该如何实现检索呢?如何去写SQL呢? 因为可能变量内存在多组,有可能是多达上百组的数值,所以不建议用Link, 小弟初学,请大家帮忙。
如果不用变量的话,倒是可以拆分查询的字符串,逐个用like查询.关注下~~
declare @TempValue varchar(1000)
set @TempValue='ABCD,8888,9999'
declare @s varchar(max)
set @s='select * from TableTemp where colTemp like ''%'+replace(@TempValue,',','%'' or colTemp like ''%')+'%'''
print @s
--select * from TableTemp where colTemp like '%ABCD%' or colTemp like '%8888%' or colTemp like '%9999%'
效率会很低, 不过也没什么好办法