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
 
	  
 
   
 
説明:
別々にコンパイルされた 2 つのプログラムでは、同じカーソルを共有できません。特定のカーソルを参照する文はすべて、まとめてコンパイルする必要があります。
SELECT DISTINCT 文は、カーソルを開く際に実行されます。SELECT DISTINCT 文には、次の規則が適用されます。
行セット内で重複している行を削除するには、SELECT INTO ではなく SELECT DISTINCT を使用します。