SQL Server 的 T-SQL 语法似乎允许连续使用多个加号:
SELECT 1 + 2 --3
SELECT 1 ++ 2 --3
SELECT 1 ++++++ 2 --3
SELECT 1 + '2' --3
SELECT 1 ++ '2' --3
SELECT '1' + '2' --'12'
SELECT '1' ++ '2' --'12'
多个加号看起来就像一个加号。为什么存在“乘法运算符” ++
?它有什么作用?
SQL Server 的 T-SQL 语法似乎允许连续使用多个加号:
SELECT 1 + 2 --3
SELECT 1 ++ 2 --3
SELECT 1 ++++++ 2 --3
SELECT 1 + '2' --3
SELECT 1 ++ '2' --3
SELECT '1' + '2' --'12'
SELECT '1' ++ '2' --'12'
多个加号看起来就像一个加号。为什么存在“乘法运算符” ++
?它有什么作用?
第一个加号被解释为加法运算符。剩余的每个加号都被解释为一元加号运算符:
1 ++ 2 means 1 + (+2)
1 +++ 2 means 1 + (+(+2))
这种一元加号运算符在编程语言中很常见,尽管它在 SQL 中很少使用,因为它实际上并没有做任何事情。
尽管一元加号可以出现在任何数值表达式之前,但它不会对从表达式返回的值执行任何操作。具体来说,它不会返回负表达式的正值。
SQL-92 标准中提到了一元加号运算符。
除了通常的算术运算符,加号、减号、时间、除法、一元加号和一元减号之外,还有以下返回数字的函数: ...
虽然一元加号并不是那么有用,但它有一个更有用的伴侣:一元减号。它也被称为负运算符。
SELECT -(expression), ...
-- ^ unary minus
SELECT 1 ++ 2
表示 1 加 (+2) 表示 3
其他人的逻辑相同1+(+(+2))
,依此类推
SELECT '1' + '2' --'12'
您正在连接 2 个字符串,字符串 '1' 和字符串 '2',结果为 '12'