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

请问这个SQL应该怎么写
我写一搜索存储过程

客户端传来字符串:COMA0001,percentage=60,COMA0031,percentage=40.....(条件可能有多个)

COMA0001 表示一成分
percentage=60 百分含量

请问怎么将COMA0001,percentage=60,COMA0031,percentage=40 分开(格式如下),然后再一条条用于查询条件

select * .... where (com='COMA0001' and percentage=60) or (com=COMA0031 and percentage=40 )....

如果有数组就好,
a[0,0]="COMA0001"
A[0,1]="percentage=60"
但SQL里面没有数组,我知道可以把它弄到表里面,但我不知道怎么引用,谢谢

------解决方案--------------------
自己在前端程序里做处理,处理好后拼为查询过滤条件
------解决方案--------------------
substring(str,第几位,长度)
@Com=substring('COMA0001,percentage=60,COMA0031,percentage=40',0,8)
@percentage=substring('COMA0001,percentage=60,COMA0031,percentage=40',20,2)
.
.
.
------解决方案--------------------
declare @a nvarchar(100),@c nvarchar(10),@b int
declare @table table(a nvarchar(10))
set @a = 'C1,C2,C3'
set @c = ''
while (@a<>'')
begin
set @b = CHARINDEX(',',@a,1)
if(@b <> 0)
begin
set @c = SUBSTRING(@a,0,@b)
set @a = SUBSTRING(@a,@b+1,LEN(@a))
end
else
begin
set @c = @a
set @a = ''
end
insert @table
select cno from C where cno = @c
end
select * from @table
你可以将输入字符串的格式写成如下格式
第一次拆分用“;”,然后再用“,”拆分
COMA0001,percentage=60;COMA0031,percentage=40
或者你在传入的时候就将字符串改为:
com= 'COMA0001 ' and percentage=60,com='COMA0031' and percentage=40,....