テーブル定義の過程で、インデックスを定義する例を示します。

ここでは次のような列から成る顧客マスター・テーブル CUSMST を例として使います。

説明

タイプ

長さ

小数点の位置

CUSTNO

顧客番号(プライマリ・キー)

S

7

0

NAME

個人/組織名

A

30


ADDR1

住所1

A

35


ADDR2

住所2

A

35


ADDR3

住所3

A

35


POSTCD

郵便番号

A

4


STATE

州コード

A

3


ACTIVE

稼動/休止フラグ

A

1


CREDIT

与信限度

P

11

2

AMTDUE

貸し出し残高

P

11

2

ACCTYP

口座種別

P

1

0

例1

NAMEフィールドを基準に整列した、CUSMSTV1というインデックス/テーブルを定義

     Index name     : CUSMSTV1
Desc of index  : Customer master by customer name
Access path maint opt : IMMED Unique? NO Dynamic select? NO
Key column details
    Column   Description      A/D    S/U/A
    NAME___                  A      _   
    _______                  _      _        +
    _______                  _      _        +
                                             +

例2

州コード順、同じ州内では郵便番号順に並べ替えた、CUSMSTV2というインデックス/テーブルを定義。

     Index name     : CUSMSTV2
Desc of index  : Cust master by state and postcode
Access path maint opt : IMMED Unique? NO Dynamic select? NO
Key column details
    Column      Description      A/D   S/U/A
    STATE____                   _      _
    POSTCD___                   _      _
                                _      _   +

昇順/降順の指定はしていないので、省略値である昇順になります。

例3

顧客番号順に並べた、CUSMSTS1というインデックス/テーブルを定義。ただし、稼動口座(ACTIVE = 'Y')のみ選択します。

     Index name     : CUSMSTS1
Desc of index  : Active customers by customer no
Access path maint opt : IMMED Unique? NO Dynamic select? NO
Key column details:
    Column       Description      A/D   S/U/A
    CUSTNO__                     _      _
    ________                     _      _        +
    ________                     _      _        +
                                                 +

Select/Omit criteria:
    AND/OR    SELECT/OMIT    Column       Operation(s)       
              SELECT____    ACTIVE    COMP(EQ 'Y')_____

例4

貸し出し残高順に並べた、CUSMSTS2というインデックス/テーブルを定義。ただし、与信限度(CREDIT)が100000を超え、貸し出し残高(AMTDUE)が20000以上のもののみ選択します。また、貸し出し残高の高いものから順に並べます。実行時選択機能も使います。

     Index name    : CUSMSTS2
Desc of index : High credit, large debt customers
Access path maint opt: IMMED Unique? NO Dynamic select? YES
Key column details:
    Column       Description      A/D   S/U/A
    AMTDUE__                     D      S
    ________                     _      _        +
    ________                     _      _        +
                                                 +
 
Select/Omit criteria :
    AND/OR    SELECT/OMIT    Column     Operation(s)    
              SELECT___     CREDIT___ COMP(GT 100000)_______
    AND       _________     AMTDUE___ COMP(GE 20000)________

「Select/Omit criteria」の2行目、「SELECT/OMIT」欄が空になっているのは、2つの選択条件をAND条件で結ぶことを表します。この場合、CREDITが100000より大きく、かつ、AMTDUEが20000以上である顧客を選択することになります。

例5

与信限度順に並べた、CUSMSTS3というインデックス/テーブルを定義。ただし、与信限度(CREDIT)が100000を超えるか、または貸し出し残高(AMTDUE)が20000以上のもののみ選択します。

     Index name     : CUSMSTS3
Desc of index  : High credit or large debt customers
Access path maint opt : IMMED Unique? NO Dynamic select? NO
Key column details:
    Column        Description      A/D    S/U/A
    CREDIT__                       _      _   
    ________                       _      _        +
    ________                       _      _        +
                                                   +
 
Select/Omit criteria:
    AND/OR    SELECT/OMIT   Column      Operation(s)       
              SELECT___    CREDIT___ COMP(GT 100000)________
    OR        SELECT___    AMTDUE___ COMP(GE 20000)_________

「Select/Omit criteria」の2行目、「SELECT/OMIT」欄が空になっていないので、2つの選択条件をOR条件で結ぶことを表します。この場合、CREDITが100000より大きいか、または、AMTDUEが20000以上である顧客を選択することになります。

例6

州と顧客番号を基準に並べ替えた、CUSMSTS4というインデックス/テーブルを定義。ただし、州(STATE)が「NSW」(ニュー・サウス・ウェールズ州)、「VIC」(ビクトリア州)、「QLD」(クイーンズランド州)のいずれかであるもののみ選択します。

     Index name     : CUSMSTS4
Desc of index  : East coast customers by state, cust
Access path maint opt : IMMED Unique? NO Dynamic select? NO
Key column details
    Column      Description      A/D   S/U/A
    STATE___                    _      _   
    CUSTNO__                    _      _   
    ________                    _      _         +
                                                 +
 
Select/Omit criteria:
    AND/OR    SELECT/OMIT    Column     Operation(s)       
              SELECT____    STATE___ COMP(EQ 'NSW')________
    OR        SELECT____    STATE___ COMP(EQ 'VIC')________
    OR        SELECT____    STATE___ COMP(EQ 'QLD')________

An identical condition can be made using the VALUES keyword:
Select/Omit criteria
    AND/OR    SELECT/OMIT   Column   Operation(s)       
              SELECT____   STATE VALUES('NSW' 'VIC' 'QLD')  

例7

顧客番号順に並べた、CUSMSTS5というインデックス/テーブルを定義。ただし、口座種別(ACCTYP)が2、3、4のいずれかであるもののみ選択します。

     Index name     : CUSMSTS5
Desc of index  : Customers with type 2, 3 or 4 accounts
Access path maint opt : IMMED Unique? NO Dynamic select? NO
Key column details:
    Column      Description      A/D   S/U/A
    CUSTNO__                    _      _   
    ________                    _      _        +
    ________                    _      _        +

Select/Omit 条件:


     AND/OR    SELECT/OMIT    Column     Operation(s)        
              SELECT____     ACCTYP___ COMP(EQ 2)_____
    OR        SELECT____     ACCTYP___ COMP(EQ 3)_____
    OR        SELECT____     ACCTYP___ COMP(EQ 4)______


選択条件は、次のような書き方も可能です。 

               SELECT____    ACCTYP___ COMP(GE 2)________
   AND                     ACCTYP____ COMP(LE 4)_________

または

               SELECT____     ACCTYP__ VALUES(2 3 4)______

または

               SELECT____    ACCTYP___ RANGE(2 4)______
  • No labels