iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SQL SERVER中SELECT和SET赋值异同点有哪些
  • 386
分享到

SQL SERVER中SELECT和SET赋值异同点有哪些

2024-04-02 19:04:59 386人浏览 独家记忆
摘要

本文小编为大家详细介绍“SQL Server中SELECT和SET赋值异同点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“sql SERVER中SELECT和SET赋值异同点有哪些”文章能帮

本文小编为大家详细介绍“SQL Server中SELECT和SET赋值异同点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“sql SERVER中SELECT和SET赋值异同点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

SELECT和SET在SQL SERVER中都可以用来对变量进行赋值,但其用法和效果在一些细节上有些不同。

1. 在对变量赋值方面,SET是ANSI标准的赋值方式,SELECT则不是。这也是SET方式被推荐使用的原因之一。

2. SELECT可以一次对多个变量进行赋值,而SET一次只能对一个变量赋值。

DECLARE @NAME NVARCHAR(128), @AGE INT;SET @NAME = N'小明';SET @AGE=18;PRINT @NAME;PRINT @AGE;GoDECLARE @NAME NVARCHAR(128), @AGE INT;SELECT @NAME = N'小明',@AGE=18;PRINT @NAME;PRINT @AGE;

3.当使用子查询给变量赋值时,则要求子查询必须是标量子查询(即子查询得到结果是一个数据或者一行一列),不能返回多个值,否则会报错。

1)但要注意的是,如果在SELECT查询语句中给变量赋值的时候,查询语句返回记录的多少都不会产生错误,变量所得的值是查询语句最后一行的记录的相应值。

2)如果查询结果没有返回记录,也就是说返回为NULL值时,将整个子查询进行赋值的方式,SET和SELECT都会设置为NULL,而在SELECT查询语句中赋值,变量会保持为初始值不受影响。

IF (OBJECT_ID('tempdb..#temp') is not null)BEGIN  DROP TABLE #temp;ENDELSEBEGIN  CREATE TABLE #temp(  [Name] NVARCHAR(128) ,  AGE INT  )ENDGOINSERT INTO #temp([Name],AGE) VALUES(N'小明',18)INSERT INTO #temp([Name],AGE) VALUES(N'小张',19)INSERT INTO #temp([Name],AGE) VALUES(N'小王',17)GODECLARE @NAME1 NVARCHAR(128), @AGE1 INT,@NAME2 NVARCHAR(128), @AGE2 INT;SET @NAME1=(SELECT TOP 1 [NAME] FROM #temp);  --SET标量在查询赋值SELECT @AGE1=(SELECT TOP 1 AGE FROM #temp);    --SELECT标量在查询赋值SELECT @NAME2=[NAME],@AGE2=[AGE] FROM #temp;  --SELECT查询语句中赋值PRINT @NAME1; --正确运行,显示结果:小明PRINT @AGE1; --正确运行,显示结果:18PRINT @NAME2; --正确运行,显示结果:小王PRINT @AGE2; --正确运行,显示结果:17GODECLARE @NAME1 NVARCHAR(128), @AGE1 INT,@NAME2 NVARCHAR(128), @AGE2 INT;SELECT @NAME1=N'初始名字',@AGE1=0,@NAME2=N'初始名字',@AGE2=0; --初始化各变量值SET @NAME1=(SELECT TOP 1 [NAME] FROM #temp WHERE 1>1);  --SET标量在查询赋值SELECT @AGE1=(SELECT TOP 1 AGE FROM #temp WHERE 1>1);    --SELECT标量在查询赋值SELECT @NAME2=[NAME],@AGE2=[AGE] FROM #temp WHERE 1>1;  --SELECT查询语句中赋值PRINT @NAME1; --正确运行,实际值:NULL, 显示结果:(空白)PRINT @AGE1; --正确运行,实际值:NULL, 显示结果:(空白)PRINT @NAME2; --正确运行,实际和显示值:初始名字PRINT @AGE2; --正确运行,实际和显示值:0GO

那么我们该如何选择使用哪种方式:

1. 因SET作为ANSI的标准,因此其是推荐用法。

2. 在不考虑标准的情况下,如果涉及到对多个变量赋值,为了少写代码或者获取多个全局变量的值时,请考虑使用SELECT,一是因为简便,二是一些全局变量会在在第二句执行时值发生变化。

读到这里,这篇“SQL SERVER中SELECT和SET赋值异同点有哪些”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: SQL SERVER中SELECT和SET赋值异同点有哪些

本文链接: https://www.lsjlt.com/news/71356.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL SERVER中SELECT和SET赋值异同点有哪些
    本文小编为大家详细介绍“SQL SERVER中SELECT和SET赋值异同点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“SQL SERVER中SELECT和SET赋值异同点有哪些”文章能帮...
    99+
    2024-04-02
  • SQL SERVER中SELECT和SET赋值有什么区别
    这篇文章主要介绍了SQL SERVER中SELECT和SET赋值有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。SELECT...
    99+
    2024-04-02
  • Selenium和Appium有哪些异同点
    这篇文章给大家分享的是有关Selenium和Appium有哪些异同点的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前段时间学习了selenium的使用,今天开始接触appium看到appium的原理后产生了疑惑:...
    99+
    2023-06-05
  • kafka同步发送和异步发送有哪些异同点
    Kafka的同步发送和异步发送方式有以下异同点: 异同点: 发送方式:同步发送和异步发送都是通过KafkaProducer发送消息...
    99+
    2023-10-27
    kafka
  • SQL Server中的约束知识点有哪些
    本篇内容主要讲解“SQL Server中的约束知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL Server中的约束知识点有哪些”吧!一、约束的分类在SQL ...
    99+
    2023-06-30
  • volatile和原子类的异同点有哪些
    这篇文章主要讲解了“volatile和原子类的异同点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“volatile和原子类的异同点有哪些”吧!vola...
    99+
    2024-04-02
  • python列表和元组的异同点有哪些
    Python列表和元组都是序列类型的数据结构,可以存储多个元素。相同点:1. 都可以通过索引访问元素,可以使用切片操作对序列进行切片...
    99+
    2023-10-12
    python
  • javascript中mouseenter与mouseover的异同点有哪些
    这篇文章主要介绍javascript中mouseenter与mouseover的异同点有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mouseenter与mouseover的异...
    99+
    2024-04-02
  • css中perspective属性和perspective()函数的异同点有哪些
    小编给大家分享一下css中perspective属性和perspective()函数的异同点有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! css per...
    99+
    2024-04-02
  • python中有哪些赋值和交换的方法
    这篇文章给大家介绍python中有哪些赋值和交换的方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编...
    99+
    2023-06-14
  • java过滤器和拦截器有哪些异同点
    这篇“java过滤器和拦截器有哪些异同点”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java过滤器和拦截器有哪些异同点”文...
    99+
    2023-06-27
  • Python中replace()与str.translate()方法有哪些异同点
    异同点如下: replace() 方法用于替换字符串中的指定子串,而 str.translate() 方法用于根据指定的映射替换字...
    99+
    2024-04-02
  • python中copy()和直接赋值的区别有哪些
    小编给大家分享一下python中copy()和直接赋值的区别有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、区别说明使用“=”直接赋值,是引用赋值,更改一个,另一个同样会变。copy()复制一个副本,原值和新复制的...
    99+
    2023-06-15
  • mysql中MyISAM和InnoDB有哪些不同点
    本篇内容介绍了“mysql中MyISAM和InnoDB有哪些不同点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2022-11-30
    mysql myisam innodb
  • SQL Server中具有默认值的所有字段的语句有哪些
    本篇文章为大家展示了SQL Server中具有默认值的所有字段的语句有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。专家解答   通过查询任何数据库中的三个系统...
    99+
    2024-04-02
  • Js值传递和引用传递的不同点有哪些
    本篇内容介绍了“Js值传递和引用传递的不同点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!概念不同值传递为单向传递,只能由实参传递给形...
    99+
    2023-06-30
  • 云服务器和虚拟主机的异同点有哪些
    云服务器和虚拟主机都是基于虚拟化技术实现的互联网应用服务,但在以下方面存在不同:1.资源隔离:云服务器采用硬件虚拟化,每个虚拟机拥有...
    99+
    2023-06-07
    云服务器和虚拟主机 云服务器 虚拟主机
  • Kafka和其他消息队列系统有哪些异同点
    Kafka和其他消息队列系统的异同点主要体现在以下几个方面: 数据存储方式:Kafka使用磁盘存储消息数据,而其他消息队列系统如...
    99+
    2024-03-14
    Kafka
  • Go 语言和 Laravel 接口编程的异同点有哪些?
    随着互联网的发展,越来越多的网站和应用程序需要通过接口来实现与外部世界的交互。而接口编程作为一种重要的编程方式,也成为了开发者们必备的技能之一。在接口编程领域,Go 语言和 Laravel 是两个备受关注的编程语言和框架。那么,它们之间的...
    99+
    2023-08-17
    laravel linux 接口
  • vue中el-select同时获取value和label的方式有哪些
    这篇文章主要介绍“vue中el-select同时获取value和label的方式有哪些”,在日常操作中,相信很多人在vue中el-select同时获取value和label的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作