카테고리:

쿼리 구문

VALUES

SELECT 문에서 FROM 절의 VALUES 하위 절은 유한한 행 세트를 형성하는 데 사용할 상수 세트를 지정하도록 해줍니다.

(INSERT 문의 VALUES 절에 대한 자세한 내용은 INSERT 문의 설명서를 참조하십시오.)

구문

SELECT ...
FROM ( VALUES ( <expr> [ , <expr> [ , ... ] ] ) [ , ( ... ) ] ) [ [ AS ] <table_alias> [ ( <column_alias> [, ... ] ) ] ]
[ ... ]
Copy
table_alias

행 세트가 테이블인 것처럼 선택적 별칭을 사용하여 행 세트에 이름을 지정할 수 있습니다.

column_alias

선택적 열 별칭을 사용하여 열 이름을 지정할 수 있습니다.

expr

각 식은 상수이거나, SQL 문을 컴파일하는 동안 상수로 평가할 수 있는 식이어야 합니다.

대부분의 간단한 산술 식 및 문자열 함수는 컴파일 시간에 평가할 수 있지만, 대부분의 다른 식은 평가할 수 없습니다.

사용법 노트

  • FROM 절 내에서 VALUES 절은 DEFAULT 키워드를 포함할 수 없습니다. 이는 테이블 DEFAULT (예: INSERT INTO table VALUES (10, DEFAULT, 'Name') ...) 사용을 지원하는 INSERT 문의 VALUES 절과 대조됩니다.

  • VALUES 절은 16,384행으로 제한됩니다.

VALUES 절은 고정된, 알려진 행 세트를 생성하는 데 유용합니다.

SELECT * FROM (VALUES (1, 'one'), (2, 'two'), (3, 'three'));

+---------+---------+
| COLUMN1 | COLUMN2 |
|---------+---------|
|       1 | one     |
|       2 | two     |
|       3 | three   |
+---------+---------+

SELECT column1, $2 FROM (VALUES (1, 'one'), (2, 'two'), (3, 'three'));

+---------+-------+
| COLUMN1 | $2    |
|---------+-------|
|       1 | one   |
|       2 | two   |
|       3 | three |
+---------+-------+
Copy

값은 열 《이름》(암시적) 또는 열 위치로 참조될 수 있습니다.

쿼리가 여러 VALUES 절을 사용하는 경우, 절을 구분하는 데 별칭을 사용할 수 있습니다. 예를 들면 다음과 같습니다.

SELECT v1.$2, v2.$2
  FROM (VALUES (1, 'one'), (2, 'two')) AS v1
        INNER JOIN (VALUES (1, 'One'), (3, 'three')) AS v2
  WHERE v2.$1 = v1.$1;
Copy

열 이름에 대한 별칭을 지정할 수도 있습니다.

SELECT c1, c2
  FROM (VALUES (1, 'one'), (2, 'two')) AS v1 (c1, c2);
Copy