テーブル定義の過程で、インデックスを定義する例を示します。
ここでは次のような列から成る顧客マスター・テーブル CUSMST を例として使います。
|
例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以上のもののみ選択します。
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)______