연산자 우선 순위(Transact-SQL)
적용 대상: SQL ServerAzure SQL Database Azure SQL Managed Instance
복합 식에 여러 연산자가 있는 경우 연산자 우선 순위에 따라 연산 시퀀스가 결정됩니다. 실행 순서는 결과 값에 큰 영향을 줄 수 있습니다.
다음 표에서는 연산자 우선 순위를 보여 줍니다. 우선 순위가 높은 연산자가 우선 순위가 낮은 연산자보다 먼저 평가됩니다. 다음 표에서 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)