如何在拆分逗号分隔值上执行where条件

时间:2015-03-11 09:42:45

标签: sql-server

我想在下表中执行where条件,但是在从Period colomn获取值后,我不知道如何进行拆分和测试:

Code     Period
1        PER1
2        PER
3        ESN;PER_ESN;PER
4        PRN
5        PRN1;PRN2;PRN3;PRN4

查询示例如下:

select code from Mytable where Period like 'PER_ESN'

希望有人可以提供帮助:)

1 个答案:

答案 0 :(得分:1)

编辑:更改为处理参数 免责声明。你的桌子没有标准化,它会带来糟糕的表现:

DECLARE @param_period VARCHAR(200) = 'PER_ESN'
SET @param_period =';'+ REPLACE(REPLACE(@param_period,'_','[_]'),'%', '[%]') + ';'

SELECT code 
FROM Mytable 
WHERE ';' + Period + ';' LIKE @param_period

更换wildchars的原因是为了避免在其中接受不同的文本。