단항 연산자 - 음수(Transact-SQL)

적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) Microsoft Fabric의 SQL 분석 엔드포인트 Microsoft Fabric의 웨어하우스

숫자 식의 음수 값을 반환합니다(단항 연산자). 단항 연산자는 숫자 데이터 형식 범주에 속하는 데이터 형식의 한 식에 대해서만 연산을 수행합니다.

연산자 의미
+(단항 긍정) 숫자 값이 양수입니다.
- (단항 부정) 숫자 값이 음수입니다.
~ (비트 NOT) 숫자의 보수 값을 반환합니다.

+ 숫자 데이터 형식 범주의 데이터 형식 중 하나의 식에서 (양수) 및 - (음수) 연산자를 사용할 수 있습니다. (비트NOT) 연산자는 ~ 정수 데이터 형식 범주의 데이터 형식 중 하나의 식에만 사용할 수 있습니다.

Transact-SQL 구문 표기 규칙

Syntax

- numeric_expression

참고 항목

SQL Server 2014(12.x) 이전 버전의 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조하세요.

인수

numeric_expression

날짜 및 시간 범주를 제외한 숫자 데이터 형식 범주의 데이터 형식 중 하나의 유효한 입니다.

반환 형식

numeric_expression의 데이터 형식을 반환합니다. 단, 부호 없는 tinyint 식은 부호 있는 smallint 결과로 승격됩니다.

예제

A. 변수를 음수 값으로 설정

다음 예에서는 변수를 음의 값으로 설정합니다.

USE tempdb;
GO

DECLARE @MyNumber DECIMAL(10, 2);
SET @MyNumber = -123.45;

SELECT @MyNumber AS NegativeValue;
GO

결과 집합은 다음과 같습니다.

NegativeValue
--------------
-123.45

B. 변수를 음수 값으로 변경

다음 예에서는 변수를 음의 값으로 변경합니다.

USE tempdb;
GO

DECLARE @Num1 INT;
SET @Num1 = 5;

SELECT @Num1 AS VariableValue,
    -@Num1 AS NegativeValue;
GO

결과 집합은 다음과 같습니다.

VariableValue NegativeValue
------------- -------------
5             -5

예: Azure Synapse Analytics 및 분석 플랫폼 시스템(PDW)

이 문서의 Transact-SQL 코드 샘플은 AdventureWorks2022 또는 AdventureWorksDW2022 샘플 데이터베이스를 사용하며, 이는 Microsoft SQL Server 예시 및 커뮤니티 프로젝트(Microsoft SQL Server Samples and Community Projects) 홈 페이지에서 다운로드할 수 있습니다.

C. 양수 상수의 음수 반환

다음 예제에서는 양의 상수의 음수를 반환합니다.

USE ssawPDW;
GO

SELECT TOP (1) - 17 FROM DimEmployee;

결과 집합은 다음과 같습니다.

-17

단항 단항 연산자가 있는 값 에 단항 음수가 적용되는 것과 동일한 결과가 반환됩니다. 양수가 적용됩니다.

USE ssawPDW;
GO

SELECT TOP (1) - (+ 17)
FROM DimEmployee;

결과 집합은 다음과 같습니다.

-17

D. 음수 상수의 양수 반환

다음 예제에서는 음의 상수의 양수를 반환합니다.

USE ssawPDW;
GO

SELECT TOP (1) - (- 17)
FROM DimEmployee;

결과 집합은 다음과 같습니다.

-17

E. 열의 음수 반환

단항 음수는 열 값의 숫자 연산자를 반대로 바뀝니다. 결과적으로 음수 값은 양수 값에서 반환되고 양수 값은 음수 값에서 반환됩니다.

다음 예에서는 DimEmployee 테이블의 각 직원에 대해 BaseRate 값의 음수를 반환합니다.

USE ssawPDW;
GO

SELECT - BaseRate
FROM DimEmployee;