Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - Datenbankadministration » Konfiguration Ihrer Datenbank » Internationale Sprachen und Zeichensätze » Näheres zu Kollatierungen

 

Unicode-Kollatierungsalgorithmus (UCA)

Der Unicode-Kollatierungsalgorithmus ist ein Algorithmus zum Sortieren des gesamten Unicode-Zeichensatzes. Er bietet linguistisch korrekte Vergleiche, Sortierungen und Groß-/Kleinschreibungskonvertierungen. Der UCA wurde als Teil des Unicode-Standards entwickelt. SQL Anywhere implementiert den UCA unter Verwendung der Open Source-Bibliothek ICU (International Components for Unicode), die von IBM entwickelt und gepflegt wird.

Hinweis

Die Standard-UCA-Sortierung ordnet die meisten Zeichen in den meisten Sprachen in einer passenden Reihenfolge an. Aufgrund der Sortier- und Vergleichsvariationen zwischen Sprachen, die gemeinsame Zeichen enthalten, ist der UCA nicht in der Lage, eine korrekte Sortierung bei allen Sprachen zu bieten. Aus diesem Grund bietet ICU eine Syntax zum Anpassen des UCA. Weitere Hinweise finden Sie unter Optionen für Kollatierungsanpassungen.

Der UCA bietet erweiterte Möglichkeiten für Vergleiche, Sortierungen und Groß-/Kleinschreibungskonvertierungen bei geringem Platz- und Zeitaufwand.

Die zugeordnete Form einer Zeichenfolge ist länger als die ursprüngliche Zeichenfolge. Der Algorithmus stellt eine differenzierte Behandlung von komplexeren Zeichen zur Verfügung.

Im Gegensatz zum SQL Anywhere-Kollatierungsalgorithmus ist der Unicode-Kollatierungsalgorithmus nur für die Verwendung mit Einbyte- und UTF-8-Zeichensätzen bestimmt. Er teilt jedes Zeichen in ein oder mehrere Attribute auf. Bei Buchstaben sind diese Attribute Basiszeichen, Akzent und Groß-/Kleinschreibung.

Nicht-Buchstaben haben üblicherweise nur ein Attribut, das Basiszeichen.

UCA vergleicht Zeichenfolgen folgendermaßen:

  • Die Basiszeichen vergleichen. Wenn eine Zeichenfolge von Basiszeichen sich von der anderen unterscheidet, ist der Vergleich abgeschlossen. Akzente und Groß-/Kleinschreibung werden nicht berücksichtigt.

  • Wenn die Datenbank Akzente berücksichtigt, die Akzente vergleichen. Wenn sich die Akzente unterscheiden, ist der Vergleich abgeschlossen. Groß-/Kleinschreibung wird nicht berücksichtigt.

  • Wenn die Datenbank die Groß-/Kleinschreibung berücksichtigt, die Groß-/Kleinschreibung von jedem Zeichen vergleichen.

Die ursprünglichen Zeichenfolgenwerte sind nur dann gleich, wenn die Basiszeichen, Akzente und die Groß-/Kleinschreibung bei beiden Zeichenfolgen gleich sind.

Beispiel

Nehmen wir an, UCA wird verwendet, um die Zeichenfolgen in der ersten Spalte der untenstehenden Tabelle zu vergleichen. Die nachfogenden Spalten beschreiben die drei Attribute für jede Zeichenfolge. Beachten Sie, dass die Basiszeichen identisch sind. Die Wörter unterscheiden sich nur bei den Akzenten und der Groß-/Kleinschreibung.

Zeichenfolge Basiszeichen Akzente Groß-/Kleinschreibung
noel noel kein, kein, kein, kein klein, klein, klein, klein
noël noel kein, kein, Akzent, kein klein, klein, klein, klein
Noel noel kein, kein, kein, kein groß, klein, klein, klein
Noël noel kein, kein, Akzent, kein groß, klein, klein, klein

Die folgende Tabelle zeigt die Reihenfolge, die bei den vier möglichen Kombinationen der Berücksichtigung von Akzenten und der Groß-/Kleinschreibung auftreten könen, wenn UCA verwendet wird.

Akzentberücksichtigung Groß- und Kleinschreibung ORDER BY-Ergebnis Erklärung
N N

Noel, noël, Noël, noel in beliebiger Reihenfolge

  • Akzente ignoriert

  • Groß-/Kleinschreibung ignoriert

  • Alle Werte werden als gleich angesehen

  • Zufällige Reihenfolge in der Vierergruppe

J N

Noel, noel in beliebiger Reihenfolge,

gefolgt von

noël, Noël in beliebiger Reihenfolge

  • Nicht-Akzente vor Akzenten, daher e vor ë

  • Groß-/Kleinschreibung ignoriert, N und n in zufälliger Reihenfolge in jeder Zweiergruppe

N J

Noel, Noël in beliebiger Reihenfolge,

gefolgt von

noël, noel in beliebiger Reihenfolge

  • Großbuchstaben vor Kleinbuchstaben, daher N vor n

  • Akzente ignoriert, e und ë in zufälliger Reihenfolge in jeder Zweiergruppe

J J

Noel

noel

Noël

noël

  • Nicht-Akzente vor Akzenten, daher e vor ë

  • Großbuchstaben vor Kleinbuchstaben, daher N vor n