0

我正在尝试在接受许多可选字段的 COBOL DB2 中编写 SQL 语句。

到目前为止,我已经设法通过使用以下代码使 VALID-FROM-DATE 和 VALID-TO-DATE 和 SYSTEM-ID 成为可选。

MOVE A-CURRENT-TIMESTAMP(1:10)
  TO A-VALID-FROM-DATE        
MOVE A-CURRENT-TIMESTAMP(1:10)
  TO A-VALID-TO-DATE          

MOVE 0               
  TO A-SYSTEM-ID-FROM
MOVE 999             
  TO A-SYSTEM-ID-TO  

但现在我想将第四个字段设为可选,并将其设为 char 字段。

我尝试了以下方法 - 它在我的 SQL-Wizard 中有效,但在我运行程序时无效:

MOVE '%'    
  TO A-NAME

在以下 DB2 SQL 语句中:

 SELECT                                      
       COALESCE(NAME,' ')                   
      ,SYSTEM_ID                             
      ,COALESCE(VALUE_DATE,'0001-01-01')     
 FROM TABLE                                
WHERE                                        
      NAME          LIKE :A-NAME            
  AND SYSTEM_ID  BETWEEN :A-SYSTEM-ID-FROM   
                     AND :A-SYSTEM-ID-TO     
  AND VALUE_DATE BETWEEN :A-VALID-FROM-DATE  
                     AND :A-VALID-TO-DATE    
 ORDER BY VALUE_DATE                         

有任何想法吗?

4

1 回答 1

1

解决方案相当简单。代替

MOVE '%'    
  TO A-NAME

我把它改成

MOVE '%%%%%%%'    
  TO A-NAME

因为 A-NAME 是一个 X(7) 字段。

于 2012-08-02T12:35:51.473 回答