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 - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Funktionen » SQL-Funktionen (A-D)

 

COMPARE-Funktion [Zeichenfolge]

Damit können Sie zwei Zeichenfolgen basierend auf unterschiedlichen Kollatierungsregeln vergleichen.

Syntax
COMPARE( 
Zeichenfolgenausdruck-1,
Zeichenfolgenausdruck-2
[, { Kollatierung-ID  
| Kollatierung-Name[(Kollatierungsanpassung-Zeichenfolge) ] } ]  )
Parameter
  • Zeichenfolgenausdruck-1   Der erste Zeichenfolgenausdruck

  • Zeichenfolgenausdruck-2   Der zweite Zeichenfolgenausdruck.

    Der Zeichenfolgenausdruck kann nur Zeichen enthalten, die im Zeichensatz der Datenbank kodiert sind.

  • Kollatierung-ID   Eine Variable oder Ganzzahlkonstante, die die zu verwendende Sortierreihenfolge angibt. Sie können eine Kollatierung-ID nur für integrierte Kollatierungen verwenden. Weitere Hinweise finden Sie unter SORTKEY-Funktion [Zeichenfolge].

    Wenn Sie keinen Kollatierung-Namen bzw. keine Kollatierung-ID eingeben, wird als Standard "Default Unicode multilingual" verwendet.

  • Kollatierung-Name   Eine Zeichenfolge oder eine Zeichenvariable, die den Namen der zu verwendenen Kollatierung angibt. Sie können auch char_collation oder db_collation angeben (z.B. COMPARE( 'abc', 'ABC', 'char_collation' );), um die von der Datenbank verwendete CHAR-Kollatierung zu benutzen. Gleichermaßen können Sie nchar_collation angeben, um die von der Datenbank verwendete NCHAR-Kollatierung zu benutzen. Eine Liste der gültigen Kollatierungen finden Sie unter SORTKEY-Funktion [Zeichenfolge].

  • Kollatierungsanpassung-Zeichenfolge   Optional können Sie Optionen für Kollatierungsanpassungen (Kollatierungsanpassung-Zeichenfolge) als zusätzliche Steuerung bei Zeichenvergleichen angeben. Diese Optionen werden in der Form von Schlüsselwort=Wert-Paaren, die in Klammern gesetzt werden, hinter dem Kollatierung-Namen angegeben. Zum Beispiel: 'UCA(locale=es;case=LowerFirst;accent=respect)'. Die Syntax zur Angabe dieser Optionen ist identisch mit der für die COLLATION-Klausel der CREATE DATABASE-Anweisung definierten Syntax. Weitere Hinweise finden Sie unter Optionen für Kollatierungsanpassungen.

    Hinweis

    Alle Optionen der Kollatierungsanpassungen werden unterstützt, wenn die UCA-Kollatierung angegeben ist. Bei allen anderen Kollatierungen wird nur die Option für Groß-/Kleinschreibung unterstützt.

Rückgabe

Ein INTEGER-Wert, basierend auf den von Ihnen gewählten Kollatierungsregeln:

Wert Bedeutung
1 Zeichenfolgenausdruck-1 ist größer als Zeichenfolgenausdruck-2
0 Zeichenfolgenausdruck-1 ist gleich Zeichenfolgenausdruck-2
-1 Zeichenfolgenausdruck-1 ist kleiner als Zeichenfolgenausdruck-2
Bemerkungen

Die COMPARE-Funktion vergleicht keine leeren Zeichenfolgen und Zeichenfolgen mit Leerzeichen, auch wenn bei der Datenbank das Auffüllen mit Leerzeichen aktiviert ist. Die COMPARE-Funktion benutzt die SORTKEY-Funktion zur Erstellung von Kollatierungsschlüsseln für den Vergleich. Daher erzielt der Vergleich einer leeren Zeichenfolge, einer Zeichenfolge mit einem Leerzeichen und einer Zeichenfolge mit zwei Leerzeichen nicht dasselbe Ergebnis.

Wenn Zeichenfolgenausdruck-1 oder Zeichenfolgenausdruck-2 NULL ist, ist das Ergebnis NULL.

Siehe auch
Standards und Kompatibilität
  • SQL/2003   Erweiterung des Herstellers

Beispiel

Das folgende Beispiel führt drei Vergleiche mithilfe der COMPARE-Funktion durch:

SELECT COMPARE( 'abc','ABC','UCA(case=LowerFirst)' ),
       COMPARE( 'abc','ABC','UCA(case=Ignore)' ),
       COMPARE( 'abc','ABC','UCA(case=UpperFirst)' );

Die zurückgegebenen Werte sind -1, 0, 1, was das Ergebnis der einzelnen Vergleiche anzeigt. Der erste Vergleich ergibt -1, da Zeichenfolgenausdruck-2 ('ABC') kleiner ist als Zeichenfolgenausdruck-1 ('abc'). Dies liegt daran, dass die Berücksichtigung der Groß-/Kleinschreibung in der ersten COMPARE-Anweisung auf LowerFirst gesetzt ist.