SELECT DISTINCT 文にカーソル名が関連付けられて、FETCH 文を使用してデータ行を取得できるようになります。
構文:
>>---EXEC SQL--.------------.------DECLARE cursor_name---->
+-AT db_name-+
>---CURSOR FOR------SELECT DISTINCT------select_list------>
>---FROM----table_list--.-----------------2--END-EXEC----><
+-select_options--+
パラメーター:
db_name |
DECLARE DATABASE を使用して宣言されているデータベースの名前。 |
cursor_name |
以後の文でカーソルを示すために使用されるカーソル名。カーソル名には、有効なファイル名の文字を 30 字まで含めることができます。最初の文字は英字でなければなりません。 |
select_list |
検索する列の名前。 |
table_list |
select_list で指定した検索対象となる列を含むテーブルの名前。 |
select_options |
検索する行数または検索する行の順序 (またはその両方) を制限するためのオプション。 |
例:
01 age-array pic s9(09) comp-5 occurs 10 times.
01 lname-array pic x(32) occurs 10 times.
MOVE 5 TO staff-id
EXEC SQL
SELECT DISTINCT last_name
INTO :lname-array
FROM staff
WHERE staff_id > :staff-id
END-EXEC
EXEC SQL
SELECT DISTINCT age
INTO :age-array
FROM staff
WHERE first_name > 'George'
END-EXEC
コメント:
別々にコンパイルされたプログラムでは、同じカーソルを共有できません。特定のカーソルを参照する文はすべて、同時にコンパイルする必要があります。
SELECT DISTINCT 文は、カーソルが開いたときに実行されます。SELECT DISTINCT 文には、次の規則が適用されます。
行セットにある重複行を削除するには、SELECT INTO ではなく SELECT DISTINCT を使用します。