SQL 解説書

ユーザー定義タイプの比較

ユーザー定義特殊タイプの値は、完全に同じユーザー定義特殊タイプの値とのみ比較することができます。 ユーザー定義特殊タイプは、WITH COMPARISONS 文節を使用して定義されていなければなりません。

例:

以下の YOUTH 特殊タイプおよび CAMP_DB2_ROSTER 表を想定します。

  CREATE DISTINCT 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)

以下の比較は有効です。

  SELECT * FROM CAMP_DB2_ROSTER
     WHERE AGE > HIGH_SCHOOL_LEVEL

以下の比較は無効です。

  SELECT * FROM CAMP_DB2_ROSTER
     WHERE AGE > ATTENDEE_NUMBER

ただし、特殊タイプとそのソース・タイプとの間では、 キャストのための関数または CAST 指定を使用することによって、 AGE と ATTENDEE_NUMBER とを比較することができます。 以下の比較はすべて有効です。

  SELECT * FROM CAMP_DB2_ROSTER
     WHERE INTEGER(AGE) > ATTENDEE_NUMBER
 
  SELECT * FROM CAMP_DB2_ROSTER
     WHERE CAST( AGE AS INTEGER) > ATTENDEE_NUMBER
 
  SELECT * FROM CAMP_DB2_ROSTER
     WHERE AGE > YOUTH(ATTENDEE_NUMBER)
 
  SELECT * FROM CAMP_DB2_ROSTER
     WHERE AGE > CAST(ATTENDEE_NUMBER AS YOUTH)

ユーザー定義構造タイプの値を、 他の値と比較することはできません (NULL 述部および TYPE 述部が使えます)。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]