FirebirdSQL logo

В SQL текстовые строки принадлежат к сортируемым объектам.Это означает, что они подчиняются своим внутренним правилам упорядочения, например, алфавитному порядку.К таким текстовым строкам можно применять операции сравнения (например, “меньше чем” или “больше чем”), при этом значения выражения должны вычисляться согласно определённой последовательности сортировки.Например, выражение 'a'<'b' означает, что 'a' предшествует 'b' в последовательности сортировки.Под выражением 'c'>'b' имеется в виду, что в последовательности сортировки 'с' определено после 'b'. Текстовые строки, включающие больше одного символа, сортируются путём последовательного сравнения символов: сначала сравниваются первые символы двух строк, затем вторые символы и так далее, до тех пор, пока не будет найдено различие между двумя строками.Такое различие управляет порядком сортировки.

Под сравнением (сортировкой) (COLLATION) принято понимать такой объект схемы, который определяет упорядочивающую последовательность (или последовательность сортировки).

CREATE COLLATION

Назначение

Добавление новой сортировки (сравнения) для набора символов поддерживаемого в базе данных.

Доступно в

DSQL

Синтаксис
CREATE COLLATION collname
FOR charset
[FROM basecoll | FROM EXTERNAL ('extname')]
[NO PAD | PAD SPACE]
[CASE [IN]SENSITIVE]
[ACCENT [IN]SENSITIVE]
['<specific-attributes>'];

<specific-attributes> ::= <attribute> [; <attribute> ...]

<attribute> ::= attrname=attrvalue
Table 1. Параметры оператора CREATE COLLATION
Параметр Описание

collname

Имя сортировки (сравнения). Максимальная длина 63 символов.

charset

Набор символов.

basecoll

Базовая сортировка (сравнение).

extname

Имя сортировки из конфигурационного файла.Чувствительно к регистру.

Оператор CREATE COLLATION ничего не “создаёт”, его целью является сделать сортировку известной для базы данных.Сортировка уже должна присутствовать в системе, как правило, в файле библиотеки, и должна быть зарегистрирована в файле fbintl.conf подкаталога intl корневой директории Firebird.

Необязательное предложение FROM указывает сортировку, на основе которой будет создана новая сортировка.Такая сортировка должна уже присутствовать в базе данных.Если указано ключевое слово EXTERNAL, то будет осуществлён поиск сортировки из файла $fbroot/intl/fbintl.conf, при этом extname должно в точности соответствовать имени в конфигурационном файле (чувствительно к регистру).

Если предложение FROM отсутствует, то Firebird ищет в конфигурационном файле fbintl.conf подкаталога intl корневой директории сервера сортировку с именем, указанным сразу после CREATE COLLATION.Другими словами, отсутствие предложения FROM basecoll эквивалентно заданию FROM EXTERNAL ('collname').

При создании сортировки можно указать учитываются ли конечные пробелы при сравнении.Если указана опция NO PAD, то конечные пробелы при сравнении учитываются.Если указана опция PAD SPACE, то конечные пробелы при сравнении не учитываются.

Необязательное предложение CASE позволяет указать будет ли сравнение чувствительно к регистру.

Необязательное предложение ACCENT позволяет указать будет ли сравнение чувствительно к акцентированным буквам (например “е” и “ё”).