(4.24)sql server变量中set与select的区别
2024-10-14 19:38:06
SET vs SELECT是SQL极客之间讨论的常见话题,也是最受欢迎的面试问题之一。SET用于为变量赋值,SELECT用于赋值或从变量/ table / view等中选择值。
让我们看看在不同场景中SET和SELECT的用法。
分配标量值
1
2
3
4
5
6
7
8
9
10
|
-- Query 1: Assigning scalar values
Declare
@set INT,
@select INT
SET @set=1
SELECT @select=1
SELECT @set AS 'Set', @select AS 'Select'
GO
|
在上面的查询中,SET和SELECT都用于为变量赋值。
将值分配给多个参数
1
2
3
4
5
6
7
8
9
10
11
|
--Query 2: Assigning values to multiple parameters
DECLARE
@s1 INT,
@s2 INT
-- 2 SET statements
SET @s1=1
SET @s2=2
-- 1 Select statement
SELECT @s1=1, @s2=2
|
SET语句可以一次为变量赋值。为了将值分配给两个不同的变量,需要两个不同的SET语句。SELECT语句可以在一个go中为多个变量赋值,如上面的查询所示。在这种情况下,SELECT语句的性能优于SET。
从查询中分配值
在下面的快照中,SELECT语句用于为选择查询中的变量赋值。如果select查询返回多个结果集,SELECT语句会将结果集中的最后一个值分配给变量。
如果查询返回多个结果集,则SET语句会出错,如下所示。
如果查询返回0行,则SELECT语句不会更改变量值。相反,SET语句将变量设置为NULL,如果查询返回0行,则覆盖先前的值。这显示在下面的快照中。
最新文章
- Mac 下使用homebrew 安装node后全局安装找不到问题
- LoadRunner迭代与并发的理解
- noi 6049 买书
- [转] AOP面向切面编程
- View绘制详解(三),扒一扒View的测量过程
- juqery合成事件toggle方法
- JSONObject和JSONArray的简单使用(json-lib)
- Java并发编程--线程池
- 把玩Fedora29操作系统
- SSH(Spring SpringMVC Hibernate)框架整合
- 使用@import导入实现了ImportBeanDefinitionRegistrar接口的类,不能被注册为bean
- Dalvik源码阅读笔记(一)
- android view知识点 总结
- sqlserver row_number函数的用法
- libevent2源码分析之三:信号的初始化流程
- HBase-修改表结构
- JS 的引用赋值与传值赋值
- git clone 指定新建本地库位置
- [转载]ExtJs4 笔记(1) ExtJs大比拼JQuery:Dom文档操作
- Java 集合类的细节
热门文章
- [Tensorflow] Object Detection API - retrain mobileNet
- [Bayes] prod: M-H: Independence Sampler for Posterior Sampling
- SpringBoot(十六)-- 使用外部容器运行springBoot项目
- iOS - WKWebView加载不受信任的https (因用到IP地址加端口号去请求数据)
- cocos2dx内存管理
- css---颜色过渡渐变
- linux环境变量配置,转载地址:http://blog.sina.com.cn/rss/1650981242.xml
- eclipse下配置Spring环境
- npm构建保存 code ELIFECYCLE解决办法
- Codeforces 698A - Vacations - [简单DP]