度量快速开发平台-专业、快速的软件定制快开平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 1488|回复: 5
打印 上一主题 下一主题

[分享] SQL Server中SET赋值和SELECT赋值

[复制链接]

348

主题

3572

帖子

9324

积分

论坛元老

Rank: 8Rank: 8

积分
9324
跳转到指定楼层
楼主
发表于 2020-6-18 23:48:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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
复制代码










分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复

使用道具 举报

348

主题

3572

帖子

9324

积分

论坛元老

Rank: 8Rank: 8

积分
9324
沙发
 楼主| 发表于 2020-6-18 23:50:57 | 只看该作者
简单明了,以前都是只知道....
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8566

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8566
QQ
板凳
发表于 2020-6-19 11:45:38 | 只看该作者
领悟能力不错!
回复 支持 反对

使用道具 举报

198

主题

1313

帖子

3784

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3784
地板
发表于 2020-6-19 16:11:53 | 只看该作者
各有用处,最适当的业务使用最适当的方法。
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9324

积分

论坛元老

Rank: 8Rank: 8

积分
9324
5#
 楼主| 发表于 2020-6-20 07:39:17 | 只看该作者
哟西哟西
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

348

主题

3572

帖子

9324

积分

论坛元老

Rank: 8Rank: 8

积分
9324
6#
 楼主| 发表于 2020-6-21 00:08:19 | 只看该作者
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2024-11-23 18:59 , Processed in 0.128366 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表