Collation / Sortierung

<< SMALLINT (SMALLINTEGER) | IBExpert Glossar | Spalte >>

Collation / Sortierung

Collations (Sortierungen) definieren die Sortierreihenfolge bei Abfragen wie, zum Beispiel, ORDER BY. Collations definieren auch die Groß-/Kleinschreiben-Regelungen für Keywords wie UPPER() und LOWER().

Für CHAR und VARCHAR Feldspalten kann eine spezielle Sortiersequenz definiert werden. Der Parameter COLLATE ermöglicht die Sortierung der Felder anhand bestimmter Sprachen/ Sprachgruppen, z.B. die Sortierung anhand der deutschen Sprache, wenn der Zeichensatz Win1252 verwendet wird. Eine vollständige Liste aller Sortierungen für die eingesetzten Datenbankversion können in der Systemtabelle, RDB$COLLATIONS, nachgeschlagen werden (die RDB$CHARACTER_SET_ID zeigt für welchen Zeichensatz die Sortierungen gelten).

In IBExpert kann die Sortiersequenz festgelegt werden, wenn der Zeichensatz für eine Domäne oder ein Feld definiert wird:

Die Optionen der Sortierfolge werden in IBExpert in einer Drop-Down-Liste angeboten, nachdem der Zeichensatz festgelegt wurde.

In DDL wird dies mit dem Keyword COLLATE und der entprechenden Zeichensatztabelle festgelegt, beispielsweise:

 CREATE DOMAIN dom_city VARCHAR(20)
 COLLATE PXW_INTL850;

 CREATE DOMAIN User_Name VARCHAR(20)
 CHARACTER SET DOS437
 DEFAULT USER
 NOT NULL
 COLLATE PDOX_ASCII

Die Parametersequenz ist wichtig, da die Sortierfolge zuletzt festgelegt werden muss.

Seit Firebird 2.5, gibt es auch eine Sortieroption für numerische Zeichen (nur bei Unicode):

 NUMERIC-SORT={0 | 1}

Der Default, 0, sortiert numerische Zeichen alphabetisch:

 1
 10
 100
 2
 20

Der Parameter, 1, sortiert in numerischer Reihenfolge:

 1
 2
 10
 20
 100

Siehe auch:
englischsprachig:
COLLATE
CREATE COLLATION (Firebird 2.1)
New collations in Firebird 2.1
New collations in Firebird 2
Firebird 2.1 Release Notes: International language support (INTL)
Firebird 2.1 Release Notes: Appendix B: International character sets

zurück zum Seitenanfang
<< SMALLINT (SMALLINTEGER) | IBExpert Glossar | Spalte >>