Amazon Redshift는 2025년 11월 1일부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. Python UDF를 사용하려면 이 날짜 이전에 UDF를 생성하세요. 기존 Python UDF는 정상적으로 계속 작동합니다. 자세한 내용은 블로그 게시물
COLLATE 함수
COLLATE 함수는 문자열 열 또는 표현식의 데이터 정렬을 재정의합니다.
데이터베이스 데이터 정렬을 사용하여 테이블을 생성하는 방법에 대한 자세한 내용은 CREATE TABLE 섹션을 참조하세요.
데이터베이스 데이터 정렬을 사용하여 데이터베이스를 생성하는 방법에 대한 자세한 내용은 데이터베이스 생성 섹션을 참조하세요.
구문
COLLATE(
string
, 'case_sensitive' | 'cs' | 'case_insensitive' | 'ci');
인수
- string
-
재정의하려는 문자열 열 또는 표현식입니다.
- 'case_sensitive' | 'cs' | 'case_insensitive' | 'ci'
-
데이터 정렬 이름의 문자열 상수입니다. Amazon Redshift는 이 파라미터에 다음 값만 지원합니다.
case_sensitive
cs
case_insensitive
ci
case_sensitive와 cs는 서로 바꿔 사용할 수 있으며 동일한 결과를 냅니다. 마찬가지로 case_insensitive와 ci는 서로 바꿔 사용할 수 있으며 동일한 결과를 냅니다.
반환 타입
COLLATE 함수는 첫 번째 입력 표현식 형식에 따라 VARCHAR
또는 CHAR
를 반환합니다. 이 함수는 첫 번째 입력 인수의 데이터 정렬만 변경하고 출력 값은 변경하지 않습니다.
예시
T 테이블을 만들고 T 테이블의 col1을 case_sensitive
로 정의하려면 다음 예제를 사용합니다
CREATE TABLE T ( col1 Varchar(20) COLLATE case_sensitive ); INSERT INTO T VALUES ('john'),('JOHN');
첫 번째 쿼리를 실행하면 Amazon Redshift는 john
만 반환합니다. COLLATE 함수가 col1에서 실행되면 데이터 정렬이 case_insensitive
가 됩니다. 두 번째 쿼리는 john
과 JOHN
을 모두 반환합니다.
SELECT * FROM T WHERE col1 = 'john';
+------+ | col1 | +------+ | john | +------+
SELECT * FROM T WHERE COLLATE(col1, 'case_insensitive') = 'john';
+------+ | col1 | +------+ | john | | JOHN | +------+
A 테이블을 만들고 A 테이블의 col1을 case_insensitive
로 정의하려면 다음 예제를 사용합니다
CREATE TABLE A ( col1 Varchar(20) COLLATE case_insensitive ); INSERT INTO A VALUES ('john'),('JOHN');
첫 번째 쿼리를 실행하면 Amazon Redshift는 john
과 JOHN
을 모두 반환합니다. COLLATE 함수가 col1에서 실행되면 데이터 정렬이 case_sensitive
가 됩니다. 두 번째 쿼리는 john
만 반환합니다.
SELECT * FROM A WHERE col1 = 'john';
+------+ | col1 | +------+ | john | | JOHN | +------+
SELECT * FROM A WHERE COLLATE(col1, 'case_sensitive') = 'john';
+------+ | col1 | +------+ | john | +------+