手机访问          
logo
局部变量declare 与 case when
更新时间:2017-08-18 09:30:13    1290次阅读 评论 0

局部变量由用户定义,生命周期只在一个批处理内有效。局部变量以一个@符号开头,由用户自己定义和赋值。赋值时用 select 或 set。

示例:

declare @age int

declare @name varchar(20)

set @name='张三'      --用set 方法给变量赋值 注: 此方法一次只能给一个变量赋值

select @age=age from client where [name]=@name    --查询客户张三的年龄赋值给@age变量 注:此方法能一次多个变量赋值

示例如下:

declare @Level tinyint, @ParentID int

if @参数 <= 0

select @Level = Level, @ParentID = ParentID from 表 where 条件

else

set @Level = 0


局部变量declare 与 case when 关系

如:A.Supply 是刚刚在表A添加的新的字段,默认为0; 在存储过程中声明一个变量@ @SupplyID=A.SupplyID,此时会出现select @SupplyID结果只有新添加的值。而那些默认为0的值不见 。因此在下面的 if ..else if.. 中不会执行@Supply语句。出现这种情况就要考虑换钟方式 ,这时可以使用 case when 代替实现,case when A.SupplyID=0 then 结果1 else 结果2 end

示例:

declare @SupplyID SMALLINT

select @SupplyID=A.SupplyID FROM 表 A

--select @SupplyID

 

if(@SupplyID=0)

begin

    ...

end

else if(@SupplyID<>0)

begin

    ...

end

return 0





越努力越幸运!
分享按钮 分类:SQL
  

create:2017-08-08    阅读量(1290) 评论( 0 )

返回顶部
登录评论
  ABOUT ME
头像
昵称羊驼老友
博龄 { 57.7月 }
积分1250
博主被推荐的文章
相关博文
推荐博文
    下载的chm文件为什么查看不了
    勤奋点保存键
    读书无趣
    sysobjects
    html之间跳转传值出现乱码问题
    疾病及编码介绍十一、内分泌、营养和代谢疾
    信息资料搜集方法大总结(珍藏版)
    SQL中的符号^,$,#,&,
    说说
    sqlserver 日期时间转字符串
标签云
反馈 联系©2015-2016 2016 ©zhoubo15.cn 粤ICP备15029033号-1