sql server select和set赋值的区别

  --SQL Server中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT

  --当表达式返回一个值并对一个变量进行赋值时,推荐使用 SET 方法

(1)SELECT可以在一条语句里对多个变量同时赋值,而SET只能一次对一个变量赋值   

    select @para_1 = '1',@para_2 = '2';

    而set要达到同样的效果,需要:

    set @para_1 = '1'

    set @para_2 = '2'

(2)表达式返回多个值时,用SET将会出错,而SELECT将取最后一个值

    假设:table_1表有多个sex记录

    select @para_1 = sex from table_1 --将取最后一个值

    set @para_1 = sex from table_1 --将报错

(3)表达式无返回值时,用SET将置变量值为NULL,用SELECT变量将保持原值

    假设:table_1表为空

    set @para_1 = '初始值'

    select @para_1 = sex from table_1 --此时@para_1为‘初始值’

    set @para_1 = sex from table_1 --此时@para_1为null

(4)使用标量子查询时,如果无返回值,SET和SELECT一样,都将置为NULL

    假设:table_1表为空

    set @para_1 = '初始值'

    select @para_1 = (select sex from table_1) --此时@para_1为null

    set  @para_1 = (select sex from table_1) --此时@para_1为null

     

转载于:https://www.cnblogs.com/llljpf/p/6552837.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值