Как совместить два курсора в DB2

У меня есть два курсора, как показано ниже:

EXEC SQL                                      
     DECLARE C1 CURSOR FOR               
     SELECT  DISTINCT FIELD_1                  
     FROM    TABLE                  
     WHERE   FIELD_2 BETWEEN :MAX_DATE
                        AND '9999-12-31'      
           AND   FIELD_3 =  :VALUE 
     WITH UR                                  
     FOR FETCH ONLY                           
END-EXEC

EXEC SQL                                      
     DECLARE C2 CURSOR FOR               
     SELECT  DISTINCT FIELD_1                  
     FROM    TABLE                  
     WHERE   FIELD_2 BETWEEN :MIN_DATE
                        AND '9999-12-31'      
           AND   FIELD_3 =  :VALUE 
     WITH UR                                  
     FOR FETCH ONLY                           
END-EXEC 

Оба курсора указывают на одну и ту же таблицу. Как я могу совместить два курсора? Пожалуйста, дайте мне знать, как объединить две таблицы.

1 ответ

Если вы просто хотите объединить предикаты обоих курсоров, конечно, вы можете это сделать. Объединить WHERE статьи:

EXEC SQL                                      
     DECLARE C1 CURSOR FOR               
     SELECT  DISTINCT FIELD_1                  
     FROM    TABLE                  
     WHERE   FIELD_2 BETWEEN :MIN_DATE
                        AND :MAX_DATE
           AND   FIELD_3 =  :VALUE 
     WITH UR                                  
     FOR FETCH ONLY                           
END-EXEC

Ваш пример в вопросе имел минимальное и максимальное значения в диапазоне с 9999-12-31 что не имеет смысла для меня.

Другие вопросы по тегам