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 » SQL Anywhere サーバ SQL リファレンス » SQL データ型 » データ型の比較

 

複合型の比較

配列要素は最初の要素から比較されます。相違が見つかった場合、比較処理は停止し、その直前に比較した要素間の比較結果が返されます。すべての要素の比較が等しい場合、両配列は等しいものとなります。実行される比較は、配列に保持されていない式に対して実行される比較と同じです。ある配列が別の配列より短く、短い配列のすべての要素が長い配列の同じ要素と等しい場合、短い配列は長い配列より小さいと見なされます。

配列を比較する場合、それぞれの配列は和両立のデータ型を使用した値を保持している必要があります。重複排除と GROUP BY も、配列の式でサポートされています。たとえば、次の配列の比較では、クエリは 1 を返します。

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

Row 型を比較して、ジョイン、重複排除、グループ化で使用することができます。ここで比較する 2 つのローの型は、上の例のローの式と同じだとします。

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;

2 つのローの式は、それぞれの構造が一致する場合にのみ比較できます。ただし、ローの式は同じ構造である必要がありますが、ローの型の属性名は同じである必要はなく、個々のリーフ値のデータ型も同じである必要はありません。和両立であることのみ必要です。

等号演算と不等号演算以外では、すべての ROW の比較は UNKNOWN となります。