SQL SERVER 变量赋值

SQL Server 中变量赋值的方式有两种,分别是 SET 和 SELECT。

两种赋值方式的区别如下:

 setselect
同时对多个变量赋值不支持支持
表达式返回多个值不支持将返回的最后一个值赋给变量
表达式无返回值变量被赋null值变量保持原值

针对以上三种情况的区别,请看下面实例:

同时对多个变量赋值

(1)使用set同时对两个变量赋值

可以看到语法错误,所有set不能同时对多个变量赋值.

(2)使用select同时对两个变量赋值

可以看到语法没有问题,打印的结果也是正确的.

 

表达式返回多个值时

(1)表达式返回多个值时,使用 set 赋值

首先看一下表里的数据

然后将查询结果使用set赋值给变量 

 可以看到语法有误,不能赋值.

(2)表达式返回多个值时,使用 select 赋值

通过打印的结果,可以看到变量的值是结果集中最后一个值.

 

表达式无返回值

(1)表达式无返回值时,使用 set 赋值

首先看一下结果集中返回的值

结果集中无返回值,使用set对变量赋值:

 

表达式无返回值时,set将空值赋值给变量.

(2)表达式无返回值时,使用 select 赋值

表达式无返回值时,变量的原值保持不变.

 

还有一种特殊情况:

SELECT 也可以将标量子查询的值赋给变量,如果标量子查询不返回值,则变量被置为 null 值。

此时与使用 SET 赋值是完全相同的,实例:

select addr from chinadba1 where userid = 4 为标量子查询语句

可以看到这种写法,赋值的结果和set一样,都是null.

 

以上就是sql server中两种不同赋值方式之间的差异.

  • 18
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值