value_expression_1からvalue_expression_nまでを使用して、値形式のCASE式で、等価性をテストします。
これらの例のために、次のようにテーブルを定義します。
create table udtval038_t1(id integer, udt1 testcircleudt, udt2 testrectangleudt) PRIMARY INDEX (id);
次の例では、値形式のCASE式を示します。すべての値式が同じUDTデータ型となっています。
SELECT CASE udt1 WHEN new testcircleudt('1,1,2,yellow,circ') THEN 'Row 1' WHEN new testcircleudt('2,2,4,purple,circ') THEN 'Row 2' WHEN new testcircleudt('3,3,9,green,circ') THEN 'Row 3' ELSE 'Row is NULL' END FROM t1; *** Query completed. 4 rows found. One column returned. <CASE expression> ------------------ Row 3 Row 1 Row is NULL Row 2
ただし、次の例は、testrectangleudtが他のUDTデータ型に一致しないため、正常に完了しません。
SELECT CASE udt1 WHEN new testcircleudt('1,1,2,yellow,circ') THEN 'Row 1' WHEN new testrectangleudt('2,2,4,4,purple,rect') THEN 'Row 2' WHEN new testcircleudt('3,3,9,green,circ') THEN 'Row 3' ELSE 'Row is NULL' END FROM t1;