SQL Server's T-SQL syntax seems to allow multiple plus signs in succession:
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'
Multiple pluses seem to behave just like a single plus. Why does the "multiple plus operator" ++
exist? What does it do?
The first plus sign is interpreted as an addition operator. Each of the remaining plus signs is interpreted as a unary plus operator:
1 ++ 2 means 1 + (+2)
1 +++ 2 means 1 + (+(+2))
It's very common in programming languages to have this unary plus operator, though it's rarely used in SQL as it doesn't actually do anything.
Although a unary plus can appear before any numeric expression, it performs no operation on the value returned from the expression. Specifically, it will not return the positive value of a negative expression.
The unary plus operator is mentioned in the SQL-92 standard.
As well as the usual arithmetic operators, plus, minus, times, divide, unary plus, and unary minus, there are the following functions that return numbers: ...
While unary plus isn't all that useful, it has a more useful companion: unary minus. It is also known as the negative operator.
SELECT -(expression), ...
-- ^ unary minus
SELECT 1 ++ 2
means 1 plus (+2) which means 3
Same logic for the others 1+(+(+2))
and so on
SELECT '1' + '2' --'12'
you are concatenating 2 strings, string '1' and string '2', which results '12'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With