SQL语句的+号的问题

2024-12-28 01:18:48
推荐回答(4个)
回答1:

sql 中的 + 号可以做运算符 +,也可以做为连接符。

一、两端都为数值 ,如 select 1+2 ,即返回3

二、两端引用字段,如 select a + b
1、a、b均为字符类型 ,做为连接符,即 a=1,b=1 select a+b 返回 11
2、a、b均为数值类型,做为运算符 ,即 a=1,b=1 select a+b 返回 2
3、a、b其中一列为数值型,那么系统会先尝试将字符列转数值,转换成功,以运算符运算,转换失败则报错。
如 a = '1' ,b=1, select a+b 返回 2 ,
而 a='a',b=1 ,select a+b 则系统报错。

该情况,不同的数据库管理系统,处理略有不同,比如部分数据库不会尝试转换,而是直接报错。

回答2:

不可以省略,@银行帐号名称是一个变量,也是一个字符串。
SET @sql='ALTER TABLE dbo.临时表1 ADD ['+@银行帐号名称+'] INT DEFAULT 0'其实就是执行了三个字符串的相加操作,把结果赋值给@sql变量。
[]括号是为了兼容SQL SERVER里的关键字,如果字段名是关键字的话,某些版本的SQL SERVER会报错,所以要用[]括起来。

回答3:

如果@银行帐号名称 = pufa
相当于执行语句
ALTER TABLE dbo.临时表1 ADD [pufa] INT DEFAULT 0
@sql 是在拼执行语句。
因为语句中需要调用变量,所以要先拼出sql串,再执行
+号的作用是把两个字符串连在一起,
2个+号就把3个字符串连到了一起

[] 是把字段名括起来 ,用来定界,防止有空格等字符出现在字段里

回答4:

首先解决"[]"的问题是:T_SQL语法已经规定凡是对对象命名不符合标准命名的,如你给对象命名时出现了特殊字符如空格,加号,等特殊字符需在对象名前加上[]或"",这样不会出错否则就出错。然后说加号问题,它的作用是连接字符串只要你要连接字符串必须用它