Skip to content

Latest commit

 

History

History
95 lines (69 loc) · 3.2 KB

abs-transact-sql.md

File metadata and controls

95 lines (69 loc) · 3.2 KB
title description author ms.author ms.date ms.service ms.subservice ms.topic f1_keywords helpviewer_keywords dev_langs monikerRange
ABS (Transact-SQL)
ABS (Transact-SQL)
markingmyname
maghan
07/24/2017
sql
t-sql
reference
ABS_TSQL
ABS
values [SQL Server], positive
values [SQL Server], absolute
ABS function
absolute positive value
TSQL
>= aps-pdw-2016 || = azuresqldb-current || = azure-sqldw-latest || >= sql-server-2016 || >= sql-server-linux-2017 || = azuresqldb-mi-current||=fabric

ABS (Transact-SQL)

[!INCLUDE sql-asdb-asdbmi-asa-pdw-fabricse-fabricdw]

A mathematical function that returns the absolute (positive) value of the specified numeric expression. (ABS changes negative values to positive values. ABS has no effect on zero or positive values.)

:::image type="icon" source="../../includes/media/topic-link-icon.svg" border="false"::: Transact-SQL syntax conventions

Syntax

ABS ( numeric_expression )  

[!INCLUDEsql-server-tsql-previous-offline-documentation]

Arguments

numeric_expression
An expression of the exact numeric or approximate numeric data type category.

Return types

The return type depends on the input type of numeric_expression:

Input type Return type
float, real float
decimal(p, s) decimal(38, s)
int, smallint, tinyint int
bigint bigint
money, smallmoney money
bit float

If the result does not fit in the return type, an arithmetic overflow error occurs.

Examples

This example shows the results of using the ABS function on three different numbers.

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

[!INCLUDEssResult]

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

The ABS function can produce an overflow error when the absolute value of a number exceeds the largest number that the specified data type can represent. For example, the int data type has a value range from -2,147,483,648 to 2,147,483,647. Computing the absolute value for the signed integer -2,147,483,648 will cause an overflow error because its absolute value exceeds the positive range limit for the int data type.

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

Returns this error message:

"Msg 8115, Level 16, State 2, Line 3"

"Arithmetic overflow error converting expression to data type int."

See also

CAST and CONVERT (Transact-SQL)
Data Types (Transact-SQL)
Mathematical Functions (Transact-SQL)
Built-in Functions (Transact-SQL)