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

SQL Anywhere 12.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » SQL-Datentypen » Datentypkonvertierungen » Vergleiche zwischen Datentypen

 

Vergleiche zwischen CHAR und NCHAR

Wenn ein Vergleich zwischen einem Wert des CHAR-Typs (CHAR, VARCHAR, LONG VARCHAR) und einem Wert des NCHAR-Typs (NCHAR, NVARCHAR, LONG NVARCHAR) vorgenommen wird, benutzt SQL Anywhere Inferenzregeln, um den Typ zu ermitteln, in dem der Vergleich erfolgen soll. Im Allgemeinen gilt: Wenn ein Wert auf einer Spaltenreferenz basiert und der andere nicht, wird der Vergleich in dem Typ des Werts vorgenommen, der die Spaltenreferenz enthält.

Die Inferenzregeln beschäftigen sich damit, ob ein Wert auf einer Spaltenreferenz basiert. Wenn ein Wert eine Variable, eine Hostvariable, eine Literalkonstante oder ein komplexer Ausdruck ist, der nicht auf einer Spaltenreferenz basiert, und der andere Wert auf einer Spaltenreferenz basiert, wird der konstantenbasierte Wert implizit auf den Typ des spaltenbasierten Werts angepasst.

Nachfolgend sind alle Inferenzregeln in der Reihenfolge aufgeführt, in der sie angewendet werden:

  • Wenn der NCHAR-Wert auf einer Spaltenreferenz basiert, wird der CHAR-Wert implizit auf NCHAR angepasst und der Vergleich erfolgt als NCHAR. Dies umfasst auch den Fall, wenn sowohl der NCHAR- als auch der CHAR-Wert auf Spaltenreferenzen basieren.

  • Sonst gilt: Wenn der NCHAR-Wert nicht auf einer Spaltenreferenz basiert und der CHAR-Wert auf einer Spaltenreferenz basiert, wird der NCHAR-Wert implizit auf CHAR angepasst und der Vergleich erfolgt als CHAR.

    Es ist wichtig, die on_charset_conversion_failure-Option zu berücksichtigen, wenn NCHAR-Werte in CHAR konvertiert werden, da diese Option das Verhalten steuert, wenn ein NCHAR-Zeichen nicht im CHAR-Zeichensatz dargestellt werden kann.

  • Wenn keiner der beiden Werte auf einer Spaltenreferenz basiert, wird der CHAR-Wert implizit auf NCHAR angepasst und der Vergleich erfolgt als NCHAR.

 Beispiele
 Siehe auch