- 카테고리:
VALUES¶
SELECT 문에서 FROM 절의 하위 절 VALUES를 사용하면 상수 세트를 지정하여 행의 유한 세트를 만들 수 있습니다.
INSERT 문의 VALUES 절에 대한 내용은 INSERT 문의 설명서를 참조하세요.
구문¶
매개 변수¶
expr각 식은 상수이거나, SQL 문을 컴파일하는 동안 상수로 평가할 수 있는 식이어야 합니다.
대부분의 간단한 산술 식 및 문자열 함수는 컴파일 시간에 평가할 수 있지만, 대부분의 다른 식은 평가할 수 없습니다.
table_alias행 세트가 테이블인 것처럼 행 세트에 이름으로 지정할 수 있는 선택적 별칭입니다.
column_alias선택적 열 별칭으로 열 이름을 지정할 수 있습니다.
사용법 노트¶
FROM 절 내부에서, VALUES 절은
DEFAULT키워드를 포함할 수 없습니다. 이 제한은DEFAULT사용을 지원하는 INSERT 문의 VALUES 절과는 대조됩니다(예:INSERT INTO table VALUES (10, DEFAULT, 'Name') ...).VALUES 절에 동일한 열에 대해 서로 다른 데이터 타입의 여러 값이 포함된 경우, Snowflake는 모든 값을 포함할 수 있는 공통 데이터 타입을 결정하고 각 값을 해당 공통 타입으로 암시적으로 변환합니다. 이러한 변환을 사용자가 인식하지 못하는 경우 예기치 않은 결과나 오류를 생성할 수 있습니다.
예기치 않은 강제 변환을 방지하려면 명시적으로 각 값을 원하는 유형으로 CAST하고, 값을 여러 SQL 문으로 구별하거나 열의 모든 값이 동일한 유형을 공유하도록 합니다.
숫자 예
동일한 열의 숫자 값이 소수 자릿수나 전체 자릿수에서 크게 다를 경우 해당 값은 결정된 공통 숫자 유형에 맞지 않기 때문에 Snowflake는
out of range오류를 반환할 수 있습니다.특히 숫자 값의 경우, 값을 따옴표로 묶인 텍스트 문자열로 지정한 후 필요에 따라 숫자 값으로 변환할 수도 있습니다.
타임스탬프 예
다른 유형의 타임스탬프 값이 동일한 열에 표시되면 Snowflake는 모든 값을 공통 타임스탬프 유형으로 변환합니다. 다음 예제에서는 TIMESTAMP_NTZ 값이 TIMESTAMP_LTZ로 강제 변환됩니다.
VALUES 절은 200,000개의 행으로 제한됩니다.
예¶
다음 예제에서는 VALUES 절을 사용하여 알려진 고정 행 세트를 생성합니다.
열 이름(암시적) 또는 열 위치로 값을 참조할 수 있습니다. 다음 예제에서는 열 위치로 두 번째 열을 참조합니다.
다음 예제에서는 별칭을 사용하여 여러 VALUES 절을 구분합니다.
다음 예제와 같이 열 이름의 별칭을 지정할 수도 있습니다.