SQL Server 存储过程if else细节 | 您所在的位置:网站首页 › 在微信上买汽车票怎么买 › SQL Server 存储过程if else细节 |
写一个简单的存储过程,简单的逻辑,简单的语句,如下 IF @TYPE = '1' BEGIN组 。。。(查询语句) END IF @TYPE = '2' BEGIN 。。。(查询语句) END ELSE BEGIN 。。。(查询语句) END简单语句用mybatis调用该存储函数,type传值为‘1‘时报空指针错误,提示我参数设置错误 懵逼的检查着我的Mapper、dao、service,没有问题,但是传值‘1’就是不可以!就是报错! 好吧,我直接数据库运行这个存储函数,传值‘1’,崩溃的是,数据能完美的、顺顺利利的出来! 我X,这是什么鬼,然后懵逼的换了下各个if下面的语句,好吧,只要是‘1‘就是有问题~ 查了度娘还以为是什么返回值的问题,但是我把原来1的位置的SQL放到其他下面还是可以出来的啊! 最后我重新排查了下语句,第二个if前面没else,但是从java的逻辑来说这样也可以吧,不过这是存储过程的话那还是把他加上吧! IF @TYPE = '1' BEGIN组 。。。(查询语句) END ELSE IF @TYPE = '2' BEGIN 。。。(查询语句) END ELSE BEGIN 。。。(查询语句) END 然后,然后,然后他就好了。。。花了我两个小时排查的问题。。。他就好了,虽然很开心,但是很崩溃!!!!! 好的,就这样了,我去哭会儿 参考 1.案例1: sql 存储过程里的if else while2.案例2 create procedure [dbo].[selectdianlaoempname] ( @date nvarchar(250) , --插入的日期 @flag nvarchar(250) --判定插入的数据 ) AS begin declare @SignStatus nvarchar(250) ;--状态 end if @date='实测' begin if @flag='1' or @flag='人员' set @SignStatus='1' end else if @date='检验人' begin if @flag='1' or @flag='人员' set @SignStatus='2' end else if @date='IPQC确认' begin if @flag='1' or @flag='人员' set @SignStatus='3' end select @SignStatus as returnvalue |
CopyRight 2018-2019 实验室设备网 版权所有 |