- 카테고리:
COLLATE¶
원래 collation_specification
속성 대신 지정된 collation_specification
속성을 사용하여 원래 문자열의 복사본을 반환합니다.
이 복사본은 새 collation_specification
을 사용하는 후속 문자열 비교에 사용할 수 있습니다.
구문¶
COLLATE 함수는 일반 함수로서 호출할 수 있습니다.
COLLATE(<string_expression>, '<collation_specification>')
COLLATE 함수는 중위 연산자인 것처럼 사용할 수 있습니다.
<string_expression> COLLATE '<collation_specification>'
인자¶
string_expression
복사할 문자열입니다.
collation_specification
문자열의 복사본과 함께 저장할 데이터 정렬입니다. 데이터 정렬 지정자에 대한 자세한 내용은 데이터 정렬 사양 을 참조하십시오.
반환¶
원래 collation_specification
대신 지정된 collation_specification
속성을 사용하여 원래 문자열의 복사본을 반환합니다.
사용법 노트¶
각 VARCHAR 에는 해당 VARCHAR 를 다른 VARCHAR 와 비교할 때 사용할 데이터 정렬 지정자를 보유하는 속성이 포함되어 있습니다. COLLATE 함수는 문자열을 복사하지만, 원래 사양이 아닌 새 데이터 정렬 사양을 복사본에 적용합니다.
문자열 자체는 변경되지 않습니다. 문자열과 연결된 데이터 정렬 지정자만 변경됩니다.
COLLATE가 중위 연산자로 사용되는 경우,
collation_specification
은 일반 식이 아닌 상수 문자열이어야 합니다.
예¶
다음 예는 COLLATE 함수를 호출하는 경우, 다른 데이터 정렬 사양을 가진 문자열 복사본이 반환됨을 보여줍니다.
참고
COLLATE 함수를 사용하는 더 많은 예제를 보려면 데이터 정렬 예제 섹션을 참조하세요.
테이블을 만들고 행을 삽입합니다. 삽입된 행에 있는 값의 데이터 정렬 사양은 es
(스페인어)입니다.
CREATE OR REPLACE TABLE collation1 (v VARCHAR COLLATE 'es');
INSERT INTO collation1 (v) VALUES ('ñ');
이 예는 COLLATE 함수가 문자열을 변경하지 않는다는 것을 보여줍니다. 첫 번째 열의 원래 문자열과 똑같이 세 번째 열의 복사된 문자열은 소문자입니다. 그러나 COLLATE에서 반환된 값의 데이터 정렬 사양이 es
에서 es-ci
로 변경되었습니다.
SELECT v,
COLLATION(v),
COLLATE(v, 'es-ci'),
COLLATION(COLLATE(v, 'es-ci'))
FROM collation1;
+---+--------------+---------------------+--------------------------------+
| V | COLLATION(V) | COLLATE(V, 'ES-CI') | COLLATION(COLLATE(V, 'ES-CI')) |
|---+--------------+---------------------+--------------------------------|
| ñ | es | ñ | es-ci |
+---+--------------+---------------------+--------------------------------+
이 예는 COLLATE 에서 반환된 값이 여전히 소문자 문자열이지만, 해당 문자열을 다른 문자열과 비교할 때 ci
데이터 정렬 지정자가 사용됨을 보여줍니다.
SELECT v,
v = 'ñ' AS "COMPARISON TO LOWER CASE",
v = 'Ñ' AS "COMPARISON TO UPPER CASE",
COLLATE(v, 'es-ci'),
COLLATE(v, 'es-ci') = 'Ñ'
FROM collation1;
+---+--------------------------+--------------------------+---------------------+---------------------------+
| V | COMPARISON TO LOWER CASE | COMPARISON TO UPPER CASE | COLLATE(V, 'ES-CI') | COLLATE(V, 'ES-CI') = 'Ñ' |
|---+--------------------------+--------------------------+---------------------+---------------------------|
| ñ | True | False | ñ | True |
+---+--------------------------+--------------------------+---------------------+---------------------------+
이 예에서는 독일어 데이터 정렬을 사용하여 결과를 정렬합니다.
SELECT *
FROM t1
ORDER BY COLLATE(col1 , 'de');
다음 두 쿼리는 동일한 결과를 반환합니다. 첫 번째는 COLLATE를 함수로 사용하고, 두 번째는 COLLATE를 중위 연산자로 사용합니다.
SELECT spanish_phrase FROM collation_demo
ORDER BY COLLATE(spanish_phrase, 'utf8');
SELECT spanish_phrase FROM collation_demo
ORDER BY spanish_phrase COLLATE 'utf8';