sql中case的问题
在sql中,下面的语句报语法错,是不是只能用if ...else 呀?
select case @al_djlx
when 1 then UPDATE cZC_KC_HZZ SET JHSL=JHSL+@lde_sl,JHJE=JHJE+@lde_cbje,JJ=@ade_cbj2,
BQSL=BQSL+@lde_sl
where spnm=@al_spnm and bmnm=@al_bmnm and jzrq=@al_jzrq and jzsj=@al_jzsj
when 2 then --//领料出库单
UPDATE cZC_KC_HZZ SET CKSL=CKSL+@lde_sl,CKJE=CKJE+@lde_cbje,
BQSL=BQSL - @lde_sl
where spnm=@al_spnm and bmnm=@al_bmnm and jzrq=@al_jzrq and jzsj=@al_jzsj
set @lde_sl=-@lde_sl
when 3 then --//领料归还单
UPDATE cZC_KC_HZZ SET RKSL=RKSL+@lde_sl,RKJE=RKJE+@lde_cbje,
BQSL=BQSL+@lde_sl
where spnm=@al_spnm and bmnm=@al_bmnm and jzrq=@al_jzrq and jzsj=@al_jzsj
when 4 then --//盘点报废单
UPDATE cZC_KC_HZZ SET SYSL=SYSL+@lde_sl,SYJE=SYJE+@lde_cbje,
BQSL=BQSL - @lde_sl
where spnm=@al_spnm and bmnm=@al_bmnm and jzrq=@al_jzrq and jzsj=@al_jzsj
set @lde_sl=-@lde_sl
when 5 then --//盘点
UPDATE cZC_KC_HZZ SET SYSL=SYSL+@lde_sl,SYJE=SYJE+@lde_cbje,
BQSL=BQSL - @lde_sl
where spnm=@al_spnm and bmnm=@al_bmnm and jzrq=@al_jzrq and jzsj=@al_jzsj
set @lde_sl=-@lde_sl
when 6 then --//订货单
UPDATE cZC_KC_HZZ SET DHSL=DHSL+@lde_sl
where spnm=@al_spnm and bmnm=@al_bmnm and jzrq=@al_jzrq and jzsj=@al_jzsj
set @lde_sl=0
end