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;