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

求一条SQL查询语句的写法
字符串S为 "1,5,8"


某表A内容如下
字段:a1 a2 a3
  5 9 7
  1 5 4
  2 6 1



要得知字符串S 在表A中存在几个值,比如本例实际就存在2个值:5和1(8不存在)
查询语句要得到的结果就是2 最好用一条语句完成!

请帮忙,第一个正解就给全分!

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

declare @s varchar(10) set @s='1,5,8'

select * from 你的表名 
where charindex(','+ltrim(a1)+',',','+@s+',')=0

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

go
if OBJECT_ID('#tb')is not null
drop table #tb
go
create table #tb(
a1 int,
a2 int,
a3 int
)
go
insert #tb
select 5,9,7 union all
select 1,5,4 union all
select 2,6,1
declare @str varchar(max)
set @str='1,5,8'
select COUNT(a) as times from(
select * from(
select a1 as a from #tb
union
select a2 from #tb
union
select a3 from #tb) a where CHARINDEX(ltrim(a),@str)>0)b

/*
times
2
*/
--查询出现的数字

declare @str varchar(max)
set @str='1,5,8'
select * from(
select a1 as a from #tb
union
select a2 from #tb
union
select a3 from #tb) a where CHARINDEX(ltrim(a),@str)>0
/*
a
1
5
*/