다음을 통해 공유


연산자 우선 순위(Transact-SQL)

적용 대상: Microsoft Fabric의 SQL ServerAzure SQL Database Azure SQL Managed Instance SQL 데이터베이스

복합 식에 여러 연산자가 있는 경우 연산자 우선 순위에 따라 연산 시퀀스가 결정됩니다. 실행 순서는 결과 값에 상당한 영향을 미칠 수 있습니다.

다음 표에서는 연산자 우선 순위를 보여 줍니다. 우선 순위가 높은 연산자가 우선 순위가 낮은 연산자보다 먼저 평가됩니다. 다음 표에서 1은 가장 높은 수준이고 8은 가장 낮은 수준입니다.

수준 연산자
1 ~ (비트 NOT)
2 * (곱하기), / (나누기), % (모듈러스)
3 + (양수), - (음수), + (더하기), + (연결), - (빼기), &(비트 AND), ^ (배타적 비트 OR), | (비트 OR)
4 =, >, <, >=, <=, <>, !=, !>, !< (비교 연산자)
5 NOT
6 AND
7 ALL, ANY, BETWEEN, IN, LIKE 또는 SOME
8 = (양도)

한 식에서 두 연산자가 동일한 우선순위 수준을 가지면 식에서의 위치를 기준으로 왼쪽에서 오른쪽 순으로 계산됩니다. 예를 들어 다음 SET 문에 사용되는 식에서 빼기 연산자는 더하기 연산자 이전에 평가됩니다.

DECLARE @MyNumber INT;  
SET @MyNumber = 4 - 2 + 27;  
-- Evaluates to 2 + 27 which yields an expression result of 29.  
SELECT @MyNumber;  

괄호를 사용하여 식에서 연산자의 정의된 우선 순위를 재정의합니다. 괄호 안의 모든 항목은 단일 값을 생성하기 위해 평가됩니다. 해당 값은 해당 괄호 외부의 모든 연산자에서 사용할 수 있습니다.

예를 들어 다음 SET 문에 사용된 식에서 곱하기 연산자의 우선 순위가 더하기 연산자보다 높으므로 곱하기 작업이 먼저 계산됩니다. 식 결과는 .입니다 13.

DECLARE @MyNumber INT;  
SET @MyNumber = 2 * 4 + 5;  
-- Evaluates to 8 + 5 which yields an expression result of 13.  
SELECT @MyNumber;  

다음 SET 문에 사용된 식에서 괄호로 인해 더하기가 먼저 계산됩니다. 식 결과는 .입니다 18.

DECLARE @MyNumber INT;  
SET @MyNumber = 2 * (4 + 5);  
-- Evaluates to 2 * 9 which yields an expression result of 18.  
SELECT @MyNumber;  

식에 중첩된 괄호가 있는 경우 가장 깊이 중첩된 식이 먼저 계산됩니다. 다음 예제에서는 가장 깊게 중첩된 괄호 집합의 식 5 - 3 과 함께 중첩된 괄호를 포함합니다. 이 식의 결과 값은 2입니다. 그런 다음, 더하기 연산자(+)는 이 결과를 4 추가하여 값을 6생성합니다. 마지막으로 식 6 결과를 12생성하기 위해 곱 2 합니다.

DECLARE @MyNumber INT;  
SET @MyNumber = 2 * (4 + (5 - 3) );  
-- Evaluates to 2 * (4 + 2) which then evaluates to 2 * 6, and   
-- yields an expression result of 12.  
SELECT @MyNumber;  

참고 항목

논리 연산자(Transact-SQL)
연산자(Transact-SQL)
기본 제공 함수(Transact-SQL)