Operadores unarios: negativo (Transact-SQL)
Se aplica a: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punto de conexión de análisis SQL en Microsoft Fabric
Almacenamiento en Microsoft Fabric
Devuelve el valor negativo de una expresión numérica (un operador unario). Los operadores unarios realizan una operación sobre una única expresión de cualquiera de los tipos de datos de la categoría del tipo de datos numérico.
Operator | Significado |
---|---|
+ (positivo unario) | El valor numérico es positivo. |
- (Negativo unario) | El valor numérico es negativo. |
~ (NOT bit a bit) | Devuelve el complemento de uno del número. |
Los +
operadores (positivos) y -
(negativos) se pueden usar en cualquier expresión de cualquiera de los tipos de datos de la categoría de tipo de datos numérico. El ~
operador (bit a bit NOT
) solo se puede usar en expresiones de cualquiera de los tipos de datos de la categoría de tipo de datos entero.
Convenciones de sintaxis de Transact-SQL
Sintaxis
- numeric_expression
Nota:
Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.
Argumentos
numeric_expression
Cualquier expresión válida de cualquiera de los tipos de datos de la categoría de tipo de datos numérico, excepto la categoría de fecha y hora.
Tipos de valores devueltos
Devuelve el tipo de datos de expresión_numérica, excepto si se trata de una expresión tinyint sin signo que se promueve a un resultado smallint con signo.
Ejemplos
A Establecer una variable en un valor negativo
En el ejemplo siguiente se establece una variable con un valor negativo.
USE tempdb;
GO
DECLARE @MyNumber DECIMAL(10, 2);
SET @MyNumber = -123.45;
SELECT @MyNumber AS NegativeValue;
GO
El conjunto de resultados es el siguiente:
NegativeValue
--------------
-123.45
B. Cambiar una variable a un valor negativo
En el ejemplo siguiente se cambia una variable a un valor negativo.
USE tempdb;
GO
DECLARE @Num1 INT;
SET @Num1 = 5;
SELECT @Num1 AS VariableValue,
-@Num1 AS NegativeValue;
GO
El conjunto de resultados es el siguiente:
VariableValue NegativeValue
------------- -------------
5 -5
Ejemplos: Azure Synapse Analytics y Sistema de la plataforma de análisis (PDW)
Los ejemplos de código de Transact-SQL de este artículo utilizan la base de datos de ejemplo AdventureWorks2022
o AdventureWorksDW2022
, que se pueden descargar desde la página principal de Ejemplos y proyectos de la comunidad de Microsoft SQL Server.
C. Devolver el negativo de una constante positiva
En el ejemplo siguiente se devuelve el valor negativo de una constante positiva.
USE ssawPDW;
GO
SELECT TOP (1) - 17 FROM DimEmployee;
El conjunto de resultados es el siguiente:
-17
Observe el mismo resultado devuelto que si el negativo unario se aplica a un valor con operadores unarios unarios - Positivo aplicado.
USE ssawPDW;
GO
SELECT TOP (1) - (+ 17)
FROM DimEmployee;
El conjunto de resultados es el siguiente:
-17
D. Devolver el positivo de una constante negativa
En el ejemplo siguiente se devuelve el valor positivo de una constante negativa.
USE ssawPDW;
GO
SELECT TOP (1) - (- 17)
FROM DimEmployee;
El conjunto de resultados es el siguiente:
-17
E. Devolver el negativo de una columna
El negativo unario invierte el operador numérico de los valores de una columna. Como resultado, los valores negativos se devuelven de valores positivos y los valores positivos se devuelven a partir de valores negativos.
En el ejemplo siguiente se devuelve el valor negativo del valor BaseRate
de cada empleado de la tabla DimEmployee
.
USE ssawPDW;
GO
SELECT - BaseRate
FROM DimEmployee;