다음을 통해 공유


콜레이션

정렬 시퀀스는 순서와 같음을 결정하기 위해 TEXT 값을 비교할 때 SQLite에서 사용됩니다. SQL 쿼리에서 열을 만들거나 작업별로 사용할 데이터 정렬을 지정할 수 있습니다. SQLite에는 기본적으로 세 개의 정렬 시퀀스가 포함됩니다.

콜레이션 설명
RTRIM 후행 공백을 무시합니다.
대소문자 무시 ASCII 문자 A-Z에 대/소문자를 구분하지 않습니다.
이진법 대소문자를 구분합니다. 바이트를 직접 비교합니다.

사용자 지정 데이터 정렬

사용자 고유의 정렬 시퀀스를 정의하거나 .를 사용하여 CreateCollation기본 제공 시퀀스를 재정의할 수도 있습니다. 다음 예제에서는 유니코드 문자를 지원하도록 NOCASE 데이터 정렬을 재정의하는 방법을 보여 드립니다. 전체 샘플 코드는 GitHub에서 사용할 수 있습니다.

connection.CreateCollation("NOCASE", (x, y) => string.Compare(x, y, ignoreCase: true));

var queryCommand = connection.CreateCommand();
queryCommand.CommandText =
@"
    SELECT count()
    FROM greek_letter
    WHERE value = 'λ' COLLATE NOCASE
";
var oCount = queryCommand.ExecuteScalar();
var count = (oCount is not null) ? (int)oCount : -1;

Like 연산자

SQLite의 LIKE 연산자는 정렬 순서를 지원하지 않습니다. 기본 구현에는 NOCASE 데이터 정렬과 동일한 의미 체계가 있습니다. ASCII 문자 A부터 Z까지는 대/소문자를 구분하지 않습니다.

다음 pragma 문을 사용하여 LIKE 연산자의 대소문자를 쉽게 구분할 수 있습니다.

PRAGMA case_sensitive_like = 1

LIKE 연산자의 구현을 재정의하는 자세한 내용은 사용자 정의 함수 를 참조하세요.

참고하십시오