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