Oracle SQL:拆分含横杠的列并移除拆分结果中的横杠
解决SQL拆分字符串时保留横杠的问题
没问题,我帮你调整一下SQL语句,解决拆分后带横杠的问题:
SELECT INVT_LEV3, SUBSTR(INVT_LEV3, 1, INSTR(INVT_LEV3, '-') - 1) AS PO, SUBSTR(INVT_LEV3, INSTR(INVT_LEV3, '-') + 1) AS Railcar FROM C_MVT_H WHERE INVT_LEV4 = 'G07K02129/G07K02133'
修改说明:
- PO列:原语句用
INSTR(INVT_LEV3,'-')作为截取长度,会把横杠包含进去。改成INSTR(INVT_LEV3,'-') - 1后,就只截取横杠之前的所有字符,去掉了末尾的横杠。 - Railcar列:原语句从横杠的位置开始截取,会把横杠包含进去。改成
INSTR(INVT_LEV3,'-') + 1后,从横杠的下一个字符开始截取,自然就去掉了开头的横杠。
示例验证:
用你提供的示例数据110799P-FBOX50553测试:
- PO列结果:
110799P - Railcar列结果:
FBOX50553
完全符合你要的无横杠拆分结果。
内容的提问来源于stack exchange,提问作者CHRiSTiANM
相关产品推荐
相关产品推荐

