玉祥平台客服-15087858732

标题: SQL Server中SET赋值和SELECT赋值 [打印本页]

作者: 万望    时间: 2020-6-18 23:48
标题: SQL Server中SET赋值和SELECT赋值
SQL Server 中对已经定义的变量赋值的方式有两种,分别是 SET 赋值和 SELECT 赋值。下面介绍SET和SELECT的区别,以及什么时候用SET,什么时候用SELECT。

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


SQL 代码  

  1. SELECT @VAR1='Y',@VAR2='N'

  2. -- 而SET要达到同样的效果,需要:
  3. SET @VAR1='Y'
  4. SET @VAR2='N'
复制代码

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


SQL 代码

  1. ----以下假定Permission表有多个记录

  2. SELECT @VAR1 = IsRight FROM Permission   --将取最后一个值


  3. SET @VAR1 = IsRight FROM Permission   --将报错
复制代码

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



SQL 代码

  1. SET @VAR1 = '初始值'

  2. ----以下假定查询到的记录为空
  3. SELECT @VAR1 = IsRight FROM Permission where id=567  --此时@VAR1为'初始值'


  4. SET  @VAR1 = (SELECT IsRight FROM Permission where id=567)   --此时@VAR1为NULL
复制代码

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

SQL 代码

  1. ----以下假定Permission记录为空

  2. SET @VAR1 = '初始值'

  3. SELECT @VAR1 =(SELECT IsRight FROM Permission )   --此时@VAR1为NULL

  4. SET  @VAR1 = ( SELECT IsRight FROM Permission)   --此时@VAR1为NULL
复制代码











作者: 万望    时间: 2020-6-18 23:50
简单明了,以前都是只知道....
作者: 陈晓龙    时间: 2020-6-19 11:45
领悟能力不错!
作者: 王爱东    时间: 2020-6-19 16:11
各有用处,最适当的业务使用最适当的方法。
作者: 万望    时间: 2020-6-20 07:39
哟西哟西
作者: 万望    时间: 2020-6-21 00:08





欢迎光临 玉祥平台客服-15087858732 (http://bbs.delit.cn/) Powered by Discuz! X3.2