基于SQL中SET与SELECT赋值的区别详解
2023-06-13 09:15:00 时间
最近的项目写的SQL比较多,经常会用到对变量赋值,而我使用SET和SELECT都会达到效果。
那就有些迷惑,这两者有什么区别呢?什么时候哪该哪个呢?
经过网上的查询,及个人练习,总结两者有以下几点主要区别:
假定有设定变量:
复制代码代码如下:
那就有些迷惑,这两者有什么区别呢?什么时候哪该哪个呢?
经过网上的查询,及个人练习,总结两者有以下几点主要区别:
假定有设定变量:
DECLARE@VAR1VARCHAR(1)
DECLARE@VAR2VARCHAR(2)
SELECT@VAR1="Y",@VAR2="N"
--而SET要达到同样的效果,需要:
SET@VAR1="Y"
SET@VAR2="N"
/*
说到这个,SQL内置的变量:@@ERROR和@@ROWCOUNT必须要在一句SQL语句中捕获。如果用set分两句来获取它们,将获取不完整,这时就应该用select来获取值。
*/
----以下假定Permission表有多个IsRight记录
SELECT@VAR1=IsRightFROMPermission --将取最后一个值
SET@VAR1=IsRightFROMPermission --将报错
----以下假定Permission记录为空
SET@VAR1="初始值"
SELECT@VAR1=IsRightFROMPermission --此时@VAR1为"初始值"
SET @VAR1=(SELECTIsRightFROMPermission) --此时@VAR1为NULL
----以下假定Permission记录为空
SET@VAR1="初始值"
SELECT@VAR1=(SELECTIsRightFROMPermission) --此时@VAR1为NULL
SET @VAR1=(SELECTIsRightFROMPermission) --此时@VAR1为NULL
相关文章
- ORA-24153: rule set string.string already exists ORACLE 报错 故障修复 远程处理
- ORA-25454: error during evaluation of rule set: string.string for iterator: string ORACLE 报错 故障修复 远程处理
- MySQL Error number: 3827; Symbol: ER_CANNOT_SET_DATABASE_ENCRYPTION; SQLSTATE: HY000 报错 故障修复 远程处理
- ORA-04032: pga_aggregate_target must be set before switching to auto mode ORACLE 报错 故障修复 远程处理
- Python set集合方法详解(全)
- MySQL中的导入SQL文件 Command怎么用?(mysql导入sql文件命令)
- MSSQL数据库快速导出SQL文件(mssql导出sql文件)
- Oracle中提高SQL性能的静态SQL优化(oracle静态sql)
- Oracle新增SQL方法详解(oracle新增sql)
- 采用SQL正则替换MSSQL——最佳实践详解(sql正则替换mssql)
- Oracle数据库:SQL文件的执行步骤详解(oracle如何执行sql文件)
- Oracle SQL跟踪工具的使用指南(oracle跟踪sql工具)
- 25字中文文章标题:Oracle跟踪SQL工具使用详解(oracle跟踪sql工具)
- MSSQL如何通过美化格式简化SQL查询(mssql美化格式sql)
- 如何用Oracle写出良好的SQL语句(oracle写sql提示)
- MySQL SQL 平方详解 常见方法与实现方式(mysql中sql中平方)
- MySQL中Set数据类型详解(mysql中set怎么用)
- MySQL中SET使用方法详解(mysql中set作用)
- 认真学习,精通 Oracle SQL 编写技巧(oracle sql编写)