如何仅检索列的一部分



我这里有一个问题。在第一个通道,自由贸易协定。这是一个遗留问题;它有销售人员的姓名,但是在字段的末尾有一个字符串'000000'

我想检索前18个位置,这应该为我删除0000或者如果有更优雅的方法,请告诉我。但如果没有,我如何只选择RFDTA的前18个?这个数据库是db2在Crystal报表中使用的。实际长度为40。

SELECT                                                                         
  ALL       T02.RFDTA, T01.IDDOCD, T01.IDSLR#, T01.IDPRT#, T01.IDSHP#,   T01.IDORD#,      
            IDSHP#*(IDNTU$) AS "VALUE"                                         
  FROM      ASTDTA.OEINDLID T01 INNER JOIN                                       
            ASTDTA.REFERRF T02                                                 
  ON        T01.IDSLR# = T02.RFSLC                                             
  WHERE     IDPRT# IN ('CMENV', 'CRCMBOX', 'CMPOUCH2', 'RGCHAING', 'RGBOX',    
            'PINBOX', 'PINBOX4', 'CRGBCS1S', 'CRGBC1S', 'CRGBC1M', 'CRGBC1L')  
    AND     RFCAT = '0025'                                                     
    AND     RFDTA <> '000000'                                                  
  ORDER BY  T01.IDSLR# ASC        

SUBSTR(T02.RFDTA,1,18)将给出前18个字节。

SUBSTR

如果你想从字符串的末尾删除0 s,但你不知道有多少,那么trim()是有用的:

select trim(trailing '0' from T02.RFDTA)

相关内容

  • 没有找到相关文章

最新更新