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'
多个加号似乎表现得像一个加号。为什么“多个加号运算符”++
存在?它做了什么?
答案 0 :(得分:17)
第一个加号被解释为加法运算符。每个剩余的加号都被解释为unary plus operator:
1 ++ 2 means 1 + (+2)
1 +++ 2 means 1 + (+(+2))
在编程语言中使用这个一元加运算符是很常见的,尽管它在SQL中很少使用,因为它实际上没有做任何事情。
尽管一元加号可以出现在任何数值表达式之前,但它不会对表达式返回的值执行任何操作。具体来说,它不会返回否定表达式的正值。
SQL-92标准中提到了一元加运算符。
除了通常的算术运算符,加,减,次,除,一元加和一元减号外,还有以下函数返回数字:...
虽然一元加上并不是那么有用,但它有一个更有用的伴侣:一元减去。它也被称为negative operator。
SELECT -(expression), ...
-- ^ unary minus
答案 1 :(得分:3)
SELECT 1 ++ 2
表示1加(+2),表示3
其他1+(+(+2))
的逻辑相同
SELECT '1' + '2' --'12'
你连接2个字符串,字符串'1'和字符串'2',结果为'12'