sql 变量赋多值
DECLARE@mzhvarchar(60),@bdatedatetime,@edatedatetimeset@mzh=:mzhSELECTi.vaa04,i.vaa05...
DECLARE @mzh varchar(60),@bdate datetime,@edate datetime
set @mzh =:mzh
SELECT i.vaa04 ,i.vaa05 ,d.bck03 ,
f.BBY05 ,f.BBY06 ,f.bby08 ,sum(vaj25) ,f.BBY25
FROM
VAA1 i
join vae1 e on i.vaa01=e.vaa01
join bck1 d on d.bck01=e.bck01b
join VAJ1 c on i.vaa01=c.vaa01 --c.VAA07=e.VAE01
join BBY1 f on f.BBY01=c.BBY01
join abf1 h on f.ABF01=h.ABF01
left join abk1 g on g.abk02=e.abk02
left join bdp1 m on m.bdp02=e.bdp02
WHERE c.ACF01 = 2
and e.vae44 in (1,2,3,4)
--AND vaj51>=@bdate and vaj51<=@edate
and i.vaa04 like '%'+@mzh +'%'
and m.bdp01='02'
group by i.vaa04 ,i.vaa05 ,d.bck03 ,f.BBY05 ,f.BBY06 ,f.bby08 ,f.BBY25
order by vaa04
当:mzh 是多个值时,我这里怎么改? 展开
set @mzh =:mzh
SELECT i.vaa04 ,i.vaa05 ,d.bck03 ,
f.BBY05 ,f.BBY06 ,f.bby08 ,sum(vaj25) ,f.BBY25
FROM
VAA1 i
join vae1 e on i.vaa01=e.vaa01
join bck1 d on d.bck01=e.bck01b
join VAJ1 c on i.vaa01=c.vaa01 --c.VAA07=e.VAE01
join BBY1 f on f.BBY01=c.BBY01
join abf1 h on f.ABF01=h.ABF01
left join abk1 g on g.abk02=e.abk02
left join bdp1 m on m.bdp02=e.bdp02
WHERE c.ACF01 = 2
and e.vae44 in (1,2,3,4)
--AND vaj51>=@bdate and vaj51<=@edate
and i.vaa04 like '%'+@mzh +'%'
and m.bdp01='02'
group by i.vaa04 ,i.vaa05 ,d.bck03 ,f.BBY05 ,f.BBY06 ,f.bby08 ,f.BBY25
order by vaa04
当:mzh 是多个值时,我这里怎么改? 展开
2个回答
展开全部
在数据库:
可以给@mzh定一规则,比如:
prm1+prm2+prm3....
建立一个函数,通过循环对“+”进行分割,并返回一个prm的临时表
然后把like ('%'+@mzh+'%') 中的@mzh改成对prm的子查询
在程序拼接
如果在程序中,可以对and i.vaa04 like '%'+@mzh +'%'做处理
用循环append的方式,把这句替换为:
and
(
i.vaa04 like ('%'+@mzh1 +'%')
or i.vaa04 like ('%'+@mzh2 +'%')
or i.vaa04 like ('%'+@mzh3 +'%')
...
)
可以给@mzh定一规则,比如:
prm1+prm2+prm3....
建立一个函数,通过循环对“+”进行分割,并返回一个prm的临时表
然后把like ('%'+@mzh+'%') 中的@mzh改成对prm的子查询
在程序拼接
如果在程序中,可以对and i.vaa04 like '%'+@mzh +'%'做处理
用循环append的方式,把这句替换为:
and
(
i.vaa04 like ('%'+@mzh1 +'%')
or i.vaa04 like ('%'+@mzh2 +'%')
or i.vaa04 like ('%'+@mzh3 +'%')
...
)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以使用 CHARINDEX 替代 IN 的功能.
细节信息,可仔细看下面的例子:
http://hi.baidu.com/wangzhiqing999/blog/item/1b8698fe14d68d8258ee9014.html
细节信息,可仔细看下面的例子:
http://hi.baidu.com/wangzhiqing999/blog/item/1b8698fe14d68d8258ee9014.html
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询