ARRAY値のリレーショナル比較はできません。ARRAYデータには、いかなるリレーショナル比較演算子も使用できません。リレーショナル比較ができるのは、ARRAYの個々の構成要素に限られます。
例: ARRAY_COMPAREを使用した、テーブルの問合わせ
この例では、inventoryテーブルには、2つのARRAY列(sale_price_juneおよびsale_price_july)があり、次の構成要素の値を持っています。
sale_price_june[1:10] = 50, 100, 200, 90, 250, 550, 200, 200, 50, 75 sale_price_july[1:10] = 50, 100, 200, 90, 250, 550, 200, 200, 50, 75
sale_price_june配列内のすべての構成要素の値がsale_price_july配列の構成要素の値に等しいので、次の問合わせの出力は1です。
SELECT ARRAY_COMPARE(sale_price_june, sale_price_july) FROM inventory;
次は、メソッドスタイルの構文を使用した同じ問合わせです。
SELECT sale_price_june.ARRAY_COMPARE(sale_price_july) FROM inventory;
同じ配列を考えますが、構成要素の値は次のように異なっています。
sale_price_june[1:10] = 50, 100, 200, 90, 250, 550, 200, 200, 50, 75 sale_price_july[1:10] = 50, 100, 200, 90, 300, 550, 200, 200, 50, 75
位置5にある構成要素の値が2つの配列で異なるため、次の問合わせの出力は0です。
SELECT ARRAY_COMPARE(sale_price_june, sale_price_july) FROM inventory;
次の問合わせは、位置6~10の構成要素の値を比較します。問合わせの出力は、両方の配列の指定位置の構成要素の値が等しいため、1になります。
SELECT ARRAY_COMPARE(sale_price_june, sale_price_july, 6, 10) FROM inventory;