我有一个问题。在这里的第一个col,RFDTA。这是一个传统的col;它有销售人员姓名,但是在col的末尾它有一个'000000'字符串
我想检索前18个位置,这应该为我删除0000 或者如果有更优雅的方式,请告诉我。但如果没有,我如何只选择RFDTA的前18个?此db是在Crystal报表中使用的db2。实际的len是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
答案 0 :(得分:1)
SUBSTR(T02.RFDTA,1,18)
将为您提供前18个字节。
答案 1 :(得分:0)
如果您想从字符串末尾删除0
,但又不知道有多少,那么trim()
会有所帮助:
select trim(trailing '0' from T02.RFDTA)