2012-05-05 20 views
12

de SQL Server parece permitir múltiples signos más en la serie:Servidor SQL: ¿Qué significa 1 ++ 2? la sintaxis de 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' 

múltiples ventajas parecen comportarse como una única ventaja. ¿Por qué existe el "operador múltiple plus" ++? ¿Qué hace?

+0

'SELECT +' Una cadena'' es [discutida aquí] (https://connect.microsoft.com/SQLServer/feedback/details/718176/concatenation-operator-not-working- correctamente) –

Respuesta

15

El primer signo más se interpreta como un operador adicional. Cada uno de los restantes signos más se interpreta como una unary plus operator:

1 ++ 2 means 1 + (+2) 
1 +++ 2 means 1 + (+(+2)) 

Es muy común en los lenguajes de programación para tener este operador unario mas, a pesar de que rara vez se utiliza en SQL, ya que no hace nada.

Aunque un plus unario puede aparecer antes de cualquier expresión numérica, no realiza ninguna operación en el valor devuelto por la expresión. Específicamente, no devolverá el valor positivo de una expresión negativa.

El operador unario plus se menciona en el estándar SQL-92.

Además de los habituales operadores aritméticos, más, menos, los tiempos, dividir, unario mas, y menos unitario, existen las siguientes funciones que devuelven números: ...

Mientras unario plus no es tan útil, tiene un compañero más útil: unario menos. También se lo conoce como negative operator.

SELECT -(expression), ... 
-- ^unary minus 
+0

Parece el 'Último' (más a la derecha) más el signo se interpreta como suma, y ​​todos los demás como operadores unarios. 'SELECT 5 - - + 1' evalúa a 6 –

3

SELECT 1 ++ 2 significa 1 más (2) lo que significa 3

mismo la lógica de los otros 1+(+(+2)) y así sucesivamente

SELECT '1' + '2' --'12' está concatenando 2 cuerdas, cordeles '1' y 2' de cuerda ', que da como resultado' 12 '

Cuestiones relacionadas