SQL Server:1 ++ 2是什么意思?

时间:2012-05-05 18:37:03

标签: sql-server tsql syntax

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'

多个加号似乎表现得像一个加号。为什么“多个加号运算符”++存在?它做了什么?

2 个答案:

答案 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'