식(Transact-SQL)
SQL Server 데이터베이스 엔진에서 단일 데이터 값을 얻기 위해 평가하는 기호와 연산자의 조합입니다. 단순 식으로는 단일 상수, 변수, 열 또는 스칼라 함수가 있습니다. 연산자를 사용하면 두 개 이상의 단순 식을 결합하여 복합 식으로 만들 수 있습니다.
구문
{ constant | scalar_function | [ table_name. ] column | variable | (expression ) | (scalar_subquery )
| { unary_operator } expression
| expression { binary_operator } expression | ranking_windowed_function | aggregate_windowed_function
}
인수
용어 |
정의 |
---|---|
constant |
특정한 단일 데이터 값을 나타내는 기호입니다. 자세한 내용은 상수(Transact-SQL)를 참조하십시오. |
scalar_function |
특정 서비스를 제공하고 단일 값을 반환하는 Transact-SQL 구문의 단위입니다. scalar_function은 SUM, GETDATE, CAST 함수 등의 기본 제공 스칼라 함수나 사용자 정의 스칼라 함수가 될 수 있습니다. |
[ table_name.] |
테이블의 이름 또는 별칭입니다. |
column |
열의 이름입니다. 식에는 열 이름만 사용할 수 있습니다. |
variable |
변수 또는 매개 변수의 이름입니다. 자세한 내용은 DECLARE @local_variable(Transact-SQL)을 참조하십시오. |
( expression ) |
이 항목에서 정의된 바와 같이 유효한 식입니다. 괄호는 안에 있는 식의 모든 연산자를 평가한 후에 그 결과를 다른 식과 결합하는 그룹 연산자입니다. |
( scalar_subquery ) |
한 개의 값을 반환하는 하위 쿼리입니다. 예를 들면 다음과 같습니다. SELECT MAX(UnitPrice) FROM Products |
{ unary_operator } |
단 하나의 숫자 피연산자만 있는 연산자입니다.
단항 연산자는 숫자 데이터 형식 범주의 데이터 형식 하나로 평가되는 식에 대해서만 적용할 수 있습니다. |
{ binary_operator } |
두 식을 결합하여 단일 결과를 만드는 방식을 정의하는 연산자입니다. binary_operator는 산술 연산자, 대입 연산자(=), 비트 연산자, 비교 연산자, 논리 연산자, 문자열 연결 연산자(+) 또는 단항 연산자일 수 있습니다. 연산자에 대한 자세한 내용은 연산자(Transact-SQL)를 참조하십시오. |
ranking_windowed_function |
Transact-SQL 순위 함수입니다. 자세한 내용은 순위 함수(Transact-SQL)를 참조하십시오. |
aggregate_windowed_function |
OVER 절을 사용하는 Transact-SQL 집계 함수입니다. 자세한 내용은 OVER 절(Transact-SQL)을 참조하십시오. |
식 결과
단일 상수, 변수, 스칼라 함수 또는 열 이름으로 구성된 단순 식의 경우 식의 데이터 형식, 데이터 정렬, 전체 자릿수, 소수 자릿수 및 값은 참조되는 요소의 데이터 형식, 데이터 정렬, 전체 자릿수, 소수 자릿수 및 값입니다.
비교 연산자나 논리 연산자를 사용하여 두 식을 결합하면 결과 데이터 형식은 부울이 되며 값은 TRUE, FALSE 또는 UNKNOWN 중 하나가 됩니다. 부울 데이터 형식에 대한 자세한 내용은 비교 연산자(Transact-SQL)를 참조하십시오.
산술, 비트 또는 문자열 연산자를 사용하여 두 식을 결합하면 연산자에 따라 결과 데이터 형식이 결정됩니다.
복합 식은 많은 기호로 구성되며 연산자는 단일 값의 결과로 평가됩니다. 결과 식의 데이터 형식, 데이터 정렬, 전체 자릿수 및 값은 최종 결과에 도달할 때까지 한 번에 두 개씩 구성 요소 식을 결합하여 결정됩니다. 식이 결합되는 순서는 식의 연산자 우선 순위에 따라 정의됩니다.
주의
두 식이 모두 연산자가 지원하는 데이터 형식을 갖고 있으며 다음 조건 중 최소한 하나가 참인 경우에는 연산자로 두 식을 결합할 수 있습니다.
식의 데이터 형식이 동일한 경우
우선 순위가 낮은 데이터 형식이 우선 순위가 높은 데이터 형식으로 암시적으로 변환될 수 있는 경우
식이 이러한 조건을 만족하지 않으면 CAST 또는 CONVERT 함수를 사용하여 명시적으로 우선 순위가 낮은 데이터 형식을 우선 순위가 높은 데이터 형식으로 변환하거나 중간 데이터 형식으로 변환한 후 암시적으로 우선 순위가 높은 데이터 형식으로 변환할 수 있습니다.
지원되는 명시적 변환 또는 암시적 변환이 없는 경우에는 두 식을 결합할 수 없습니다.
문자열로 평가되는 모든 식의 데이터 정렬은 선행 정렬 규칙에 따라 설정됩니다. 자세한 내용은 선행 정렬(Transact-SQL)을 참조하십시오.
C 또는 Microsoft Visual Basic과 같은 프로그래밍 언어에서 식은 항상 단일 값으로 계산됩니다. Transact-SQL SELECT 목록의 식은 이 규칙이 적용되지 않습니다. 식은 결과 집합의 각 행에 대해 개별적으로 평가됩니다. 단일 식은 결과 집합의 각 행에 서로 다른 값을 가질 수 있습니다. 그러나 각 행은 식에 대해 단 하나의 값만을 가집니다. 예를 들어 다음 SELECT 문에서 ProductID에 대한 참조와 SELECT 목록의 1+2 항목은 모두 식입니다.
USE AdventureWorks2008R2;
GO
SELECT ProductID, 1+2
FROM Production.Product;
GO
1+2 식은 결과 집합의 각 행에서 3으로 평가됩니다. ProductID 식이 각 결과 집합 행에서 고유한 값을 생성하더라도 각 행은 ProductID에 대해 단 하나의 값을 가집니다.