SQL Server 存储过程if else细节 您所在的位置:网站首页 在微信上买汽车票怎么买 SQL Server 存储过程if else细节

SQL Server 存储过程if else细节

2023-08-04 20:35| 来源: 网络整理| 查看: 265

写一个简单的存储过程,简单的逻辑,简单的语句,如下

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 while

2.案例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 实验室设备网 版权所有