title: "SIGN (Transact-SQL) | Microsoft Docs" ms.custom: "" ms.date: "03/03/2017" ms.prod: "sql" ms.prod_service: "database-engine, sql-database, sql-data-warehouse, pdw" ms.service: "" ms.component: "t-sql|functions" ms.reviewer: "" ms.suite: "sql" ms.technology:
- "database-engine" ms.tgt_pltfrm: "" ms.topic: "language-reference" f1_keywords:
- "SIGN_TSQL"
- "SIGN" dev_langs:
- "TSQL" helpviewer_keywords:
- "- (negative)"
- "+ (positive sign)"
- "zero (0)"
- "SIGN function"
- "positive values [SQL Server]"
- "0 (zero)"
- "negative values" ms.assetid: c3a98b52-6fbe-4127-a5c9-8a4922e83e28 caps.latest.revision: 33 author: "edmacauley" ms.author: "edmaca" manager: "craigg" ms.workload: "On Demand" monikerRange: ">= aps-pdw-2016 || = azuresqldb-current || = azure-sqldw-latest || >= sql-server-2016 || = sqlallproducts-allversions"
[!INCLUDEtsql-appliesto-ss2008-all-md]
Returns the positive (+1), zero (0), or negative (-1) sign of the specified expression.
Transact-SQL Syntax Conventions
SIGN ( numeric_expression )
numeric_expression
Is an expression of the exact numeric or approximate numeric data type category, except for the bit data type.
| Specified expression | Return type |
|---|---|
| bigint | bigint |
| int/smallint/tinyint | int |
| money/smallmoney | money |
| numeric/decimal | numeric/decimal |
| Other types | float |
The following example returns the SIGN values of numbers from -1 to 1.
DECLARE @value real
SET @value = -1
WHILE @value < 2
BEGIN
SELECT SIGN(@value)
SET NOCOUNT ON
SELECT @value = @value + 1
SET NOCOUNT OFF
END
SET NOCOUNT OFF
GO
[!INCLUDEssResult]
(1 row(s) affected)
------------------------
-1.0
(1 row(s) affected)
------------------------
0.0
(1 row(s) affected)
------------------------
1.0
(1 row(s) affected)
The following example returns the SIGN values of three numbers.
SELECT SIGN(-125), SIGN(0), SIGN(564);
[!INCLUDEssResult]
----- ----- -----
-1 0 1