特殊タイプの比較
特殊タイプの値は、同じ特殊タイプの値とのみ比較が可能です。
例えば、特殊タイプ YOUTH および表 CAMP_DB2_ROSTER が、次の SQL ステートメントを使用して作成されると仮定します。
CREATE TYPE YOUTH AS INTEGER WITH COMPARISONS
CREATE TABLE CAMP_DB2_ROSTER
( NAME VARCHAR(20),
ATTENDEE_NUMBER INTEGER NOT NULL,
AGE YOUTH,
HIGH_SCHOOL_LEVEL YOUTH)
以下の比較は、AGE および HIGH_SCHOOL_LEVEL が同じ特殊タイプを持っているので有効です。
SELECT * FROM CAMP_DB2_ROSTER
WHERE AGE > HIGH_SCHOOL_LEVEL
以下の比較は無効です。
SELECT * FROM CAMP_DB2_ROSTER ***INCORRECT***
WHERE AGE > ATTENDEE_NUMBER
しかし、AGE と ATTENDEE_NUMBER の比較は、キャスト関数または CAST 指定を使用して、特殊タイプとソース・タイプの間でキャストすることによって、可能になります。以下の比較はすべて有効です。
SELECT * FROM CAMP_DB2_ROSTER
WHERE AGE > YOUTH(ATTENDEE_NUMBER)
SELECT * FROM CAMP_DB2_ROSTER
WHERE AGE > CAST( ATTENDEE_NUMBER AS YOUTH)
SELECT * FROM CAMP_DB2_ROSTER
WHERE INTEGER(AGE) > ATTENDEE_NUMBER
SELECT * FROM CAMP_DB2_ROSTER
WHERE CAST(AGE AS INTEGER) > ATTENDEE_NUMBER