次の例では、現在値が割り当てられている1-D ARRAY内の構成要素数を表わす整数値を返します。
CREATE TYPE phonenumbers AS CHAR(10) ARRAY[20]; CREATE TABLE employee_info (eno INTEGER, phonelist phonenumbers); SELECT CARDINALITY(phonelist) FROM employee_info;
CARDINALITY関数を使用して、特定の適用範囲の参照内で現在初期化されている構成要素数を返すこともできます。例えば、次の問合わせにより、phonelist配列の範囲5~10で初期化された構成要素数が返ります。
SELECT CARDINALITY(phonelist, 5, 10);
次の2-D ARRAYデータ型について考えてみましょう。
CREATE TYPE shot_ary AS INTEGER ARRAY[1:50][1:50]; CREATE TABLE seismic_table(shots shot_ary); CREATE TABLE seismic_data ( id INTEGER, shot1 shot_ary, shot2 shot_ary);
次の例では、現在値が割り当てられている2-D ARRAY内の構成要素数を表わす整数値を返します。
SELECT CARDINALITY(shot1) FROM seismic_data;
次に、メソッドスタイルの構文を使用した同じ問合わせを示します。
SELECT shot1.CARDINALITY() FROM seismic_data;
次の問合わせにより、phonelist配列の各次元の範囲5~10で初期化された構成要素の数が返ります。
SELECT CARDINALITY(phonelist, NEW ArrayVec(5,5), NEW ArrayVec(10,10));