求一条SQL查询语句的写法,该如何解决
求一条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 最好用一条语句完成!
请帮忙,第一个正解就给全分!
------解决方案--------------------
字符串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 */