COLLATE 함수
COLLATE 함수는 문자열 열 또는 표현식의 데이터 정렬을 재정의합니다.
데이터베이스 데이터 정렬을 사용하여 테이블을 생성하는 방법에 대한 자세한 내용은 CREATE TABLE 섹션을 참조하세요.
데이터베이스 데이터 정렬을 사용하여 데이터베이스를 생성하는 방법에 대한 자세한 내용은 데이터베이스 생성 섹션을 참조하세요.
구문
COLLATE(
string
, 'case_sensitive' | 'case_insensitive');
인수
- string
-
재정의하려는 문자열 열 또는 표현식입니다.
- 'case_sensitive' | 'case_insensitive'
-
데이터 정렬 이름의 문자열 상수입니다. Amazon Redshift는 case_sensitive 또는 case_insensitive만 지원합니다.
반환 타입
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 | +------+