在T-SQL中分配变量时,SETSELECT语句之间有什么区别?

推荐答案

Quote,它总结了this article:

  1. SET是变量赋值的ANSI标准,SELECT不是.
  2. SET一次只能分配一个变量,SELECT一次可以分配多个变量.
  3. 如果从查询赋值,SET只能赋值一个标量值.如果查询返回多个值/行,则SET将引发错误.SELECT将为变量分配一个值,并隐藏返回多个值的事实(因此,您可能永远不会知道其他地方出现问题的原因,请享受解决该问题的乐趣)
  4. 当从查询中赋值时,如果没有返回值,则SET将赋值为NULL,SELECT将根本不赋值(因此变量不会改变其先前的值)
  5. 至于速度差异——SET和SELECT之间没有直接差异.然而,SELECT在一次拍摄中完成多个任务的能力确实让它在速度上比SET稍有优势.

Sql相关问答推荐

PostgreSQL:获取每家店铺收入最高的员工

SQL查询:合并2个表

Postgres,使用iLike运算符从json数组中搜索的工作方式与从常规表中搜索不同

连接特定行号

使用WHERE子句进行筛选时,SQL SELECT查询返回总计数

为什么两个不同的窗口函数给出不同的排序结果?

从原始表列中经过JSON字符串化的对象数组构建视图

根据是否出现过零来筛选数据(跨多行)

同时插入和更新记录

删除行而不使数据库超载

Postgresql - 如何根据阈值计算累积和

SQL SUM Filter逻辑解释

特殊条件计算小计

SQL Server中使用min()和max()从选定的特定值id表中删除不必要的时间

JSON对象查询SQL服务器

Postgres更新增量之间的差异

PostgreSQL如何将Unix纪元时间戳转换为日期时间并进行拼接

正则表达式忽略特定数据部分的分隔符

所有列分组的简写?

根据条件列出不同的值