usr*_*usr 12 t-sql sql-server 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'
Run Code Online (Sandbox Code Playgroud)
多个加号似乎表现得像一个加号.为什么存在"多重运算符" ++?它有什么作用?
Mar*_*ers 17
第一个加号被解释为加法运算符.每个剩余的加号都被解释为一元加号运算符:
1 ++ 2 means 1 + (+2)
1 +++ 2 means 1 + (+(+2))
Run Code Online (Sandbox Code Playgroud)
在编程语言中使用这个一元加运算符是很常见的,尽管它在SQL中很少使用,因为它实际上没有做任何事情.
尽管一元加号可以出现在任何数值表达式之前,但它不会对表达式返回的值执行任何操作.具体来说,它不会返回否定表达式的正值.
SQL-92标准中提到了一元加运算符.
除了通常的算术运算符,plus,minus,times,divide,unary plus和unary minus之外,还有以下函数返回数字:...
虽然一元加号并不是那么有用,但它有一个更有用的伴侣:一元减去.它也被称为负算子.
SELECT -(expression), ...
-- ^ unary minus
Run Code Online (Sandbox Code Playgroud)