日期:2014-05-18  浏览次数:20405 次

好纠结的问题,看看能用什么方法!求思路
获取到的数据格式是varchar类型如('1001','分类1','分类2')
 
SQL code

create table demo(id int,[name] varchar(20),code varchar(20))

insert into demo
select 3,'aa','1001' union all 
select 4,'bb','2001' union all
select 5, 'cc','3001' union all
select 6, '分类1','4001' union all
select 7, '分类2','5001'

select * from demo

id          name                 code
----------- -------------------- --------------------
3           aa                   1001
4           bb                   2001
5           cc                   3001
6           分类1                4001
7           分类2                5001



通过上面的逗号分割字符串,去获取数据,得到的字符串在demo表中对于的name和code
结果应该是想匹配的3条数据




------解决方案--------------------
[name] in('1001','分类1','分类2')
or
code in('1001','分类1','分类2')

------解决方案--------------------
你看一下这个
http://blog.csdn.net/peng13nannan/article/details/7418927
------解决方案--------------------
SQL code
select * from demo
where name in('1001','分类1','分类2') or code in('1001','分类1','分类2')

------解决方案--------------------
SQL code

DECLARE @Str VARCHAR(1000)

SET @Str = '1001,分类1,分类2'
create table demo(id int,[name] varchar(20),code varchar(20))

insert into demo
select 3,'aa','1001' union all 
select 4,'bb','2001' union all
select 5, 'cc','3001' union all
select 6, '分类1','4001' union all
select 7, '分类2','5001'

select * from demo
WHERE CHARINDEX(',' + name + ',',',' + @Str + ',') > 0 OR CHARINDEX(',' + code + ',',',' + @Str + ',') > 0
/*
id    name    code
3    aa    1001
6    分类1    4001
7    分类2    5001
*/

------解决方案--------------------
探讨
有没like的写法