SQL Server 中变量赋值的方式有两种,分别是 SET 和 SELECT。
两种赋值方式的区别如下:
| set | select |
同时对多个变量赋值 | 不支持 | 支持 |
表达式返回多个值 | 不支持 | 将返回的最后一个值赋给变量 |
表达式无返回值 | 变量被赋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中两种不同赋值方式之间的差异.
SQL Server 中变量赋值的方式有两种,分别是 SET 和 SELECT。
两种赋值方式的区别如下:
| set | select |
同时对多个变量赋值 | 不支持 | 支持 |
表达式返回多个值 | 不支持 | 将返回的最后一个值赋给变量 |
表达式无返回值 | 变量被赋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中两种不同赋值方式之间的差异.