DFU, Query, SQL

12. Query で文字フィールドを数字フィールドに変換するには?

Query/400 では、数字フィールドを文字フィールドに変換する DIGITS 関数 は用意されているが、

文字フィールドを数字フィールドに変換する NUMERIC 関数 はない。

しかし、MICROSECOND 関数 をうまく使うと文字フィールドを数字フィールドへ変換することができる。

次の例は 文字フィールド BHKBN から 新しい数字フィールド NUMERIC を定義している画面である。

サンプルソースコード
                             結果のフィールドの定義     
                                                                      
  フィールド名または固定情報と演算子を使用して定義を入力し,実行キーを       
    押してください。    演算子: +, -, *, /, SUBSTR, ||, DATE...               
                                                                                
 フィールド         式                              欄見出し           LEN   DEC 
 TIMESTAMP   '1988-12-25-17.30.00.00' ||                        数字 WORK        
                BHKBN                                                     
                                                                               
 NUMERIC     MICROSECOND(TIMESTAMP)/1000         結果の数字         4     0 
  
  フィールド      テキスト                                             LEN  DEC 
 BHNCOD           部品番号                                              12    
 BHNAME           部品名                                                20   O 
 BHKBN           1: 購入品 2: 加工品                                     1      
 BHZKBN          1: 有 2: 無                                             1