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

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » SQL-Datentypen » Datentypvergleiche

 

Vergleiche von zusammengesetzten Typen

Array-Elemente werden verglichen, beginnend mit dem ersten Element. Wenn ein Unterschied gefunden wurde, wird der Vergleich gestoppt und das Ergebnis des Vergleichs zwischen den zuletzt verglichenen Elementen zurückgegeben. Wenn der Vergleich für alle Elemente Gleichheit ergibt, sind die Arrays gleich. Die ausgeführten Vergleiche entsprechen denjenigen für Ausdrücke, die nicht in Arrays gespeichert sind. Wenn ein Array kürzer ist als ein anderes und alle Elemente des kürzeren Arrays gleich den entsprechenden Elementen des längeren Arrays sind, lautet das Ergebnis, dass das kürzere Array kleiner ist als das längere Array.

Beim Vergleichen von Arrays müssen die Arrays Werte mit vereinigungskompatiblen Datentypen enthalten. Duplikateliminierung und GROUP BY werden für Array-Ausdrücke ebenfalls unterstützt. Beim folgenden Array-Vergleich gibt die Abfrage beispielsweise den Wert 1 zurück:

SELECT IF ARRAY(3,4,5) > ARRAY(2,3,4) THEN 1 ELSE 0 ENDIF;

Zeilentypen können verglichen sowie in Joins, zur Duplikateliminierung und zum Gruppieren verwendet werden. Die beiden folgenden Zeilentypen ähneln dem oben genannten Beispiel eines Zeilenausdrucks:

DECLARE test1 ROW(x INT, w ROW(y INT, z INT));
DECLARE test2 ROW(a INT, b ROW(c INT, d CHAR(3)));
SET test1 = ROW(3, ROW(6,7));
SET test2 = ROW(3, ROW(8,'7'));
SELECT (IF (test1 > test2) THEN 1 ELSE 0 ENDIF) AS RESULT FROM dummy;

Die beiden Zeilenausdrücke können nur verglichen werden, wenn ihre Strukturen übereinstimmen. Obwohl jedoch die Zeilenausdrücke dieselbe Struktur aufweisen müssen, brauchen die Namen der Attribute für einen Zeilentyp nicht identisch zu sein und auch die Datentypen der einzelnen Blattwerte müssen nicht identisch, sondern nur vereinigungskompatibel sein.

Alle ROW-Vergleiche mit Ausnahme von Gleichheits- und Ungleichheitsvorgängen liefern das Ergebnis UNKNOWN.