COLLATE 함수 - Amazon Redshift

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가 됩니다. 두 번째 쿼리는 johnJOHN을 모두 반환합니다.

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는 johnJOHN을 모두 반환합니다. 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 | +------+