Partilhar via


ABS (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade de Análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de Dados SQL no Microsoft Fabric

Uma função matemática que devolve o valor absoluto (positivo) da expressão numérica especificada. (ABS altera valores negativos em valores positivos. ABS não tem efeito sobre valores zero ou positivos.)

Transact-SQL convenções de sintaxe

Sintaxe

ABS ( numeric_expression )  

Arguments

numeric_expression
Uma expressão do tipo de dado numérico exato ou numérico aproximado.

Tipos de devolução

O tipo de retorno depende do tipo de entrada do numeric_expression:

Tipo de entrada Tipo de retorno
flutuar, real float
decimal(p, s) decimal(38, s)
int, smallint, minyint int
bigint bigint
dinheiro, dinheiro pequeno dinheiro
bit float

Se o resultado não caber no tipo de retorno, ocorre um erro de transbordamento aritmético.

Examples

Este exemplo mostra os resultados da utilização da ABS função em três números diferentes.

SELECT ABS(-1.0), ABS(0.0), ABS(1.0);  

Aqui está o conjunto de resultados.

---- ---- ----  
1.0  .0   1.0  

A ABS função pode produzir um erro de overflow quando o valor absoluto de um número excede o maior número que o tipo de dado especificado pode representar. Por exemplo, o int tipo de dado tem um intervalo de valores de -2,147,483,648 até 2,147,483,647. Calcular o valor absoluto do inteiro -2,147,483,648 assinado causará um erro de transbordamento porque o seu valor absoluto excede o limite do intervalo positivo para o int tipo de dado.

DECLARE @i INT;  
SET @i = -2147483648;  
SELECT ABS(@i);  
GO  

Devolve esta mensagem de erro:

"Msg 8115, Nível 16, Estado 2, Linha 3"

"Erro de transbordamento aritmético a converter expressão em tipo de dados int."

Consulte também

CAST e CONVERT (Transact-SQL)
Tipos de dados (Transact-SQL)
Funções Matemáticas (Transact-SQL)
Funções incorporadas (Transact-SQL)