You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL中拆分与转换字符串值的最佳方法是什么

错误写法问题说明

你之前的代码存在两个核心语法错误:

  • Oracle 内置的CONCAT函数仅支持接收2个参数做拼接,你传入了多个参数会直接抛出语法异常
  • SUBSTR函数的调用规则为SUBSTR(目标字符串, 起始下标, 截取长度),你把截取逻辑和拼接参数混写,参数顺序完全不符合要求

正确实现方案

你的转换逻辑可以拆解为:取原字符串第4到第6位的内容,拼接横杠后再拼接原字符串前3位的内容,直接用Oracle的字符串拼接符||实现即可,语法最简洁可读性最高:

SUBSTR(你的字段名, 4, 3) || '-' || SUBSTR(你的字段名, 1, 3) AS overview

如果必须用CONCAT函数实现,需要嵌套调用:

CONCAT(CONCAT(SUBSTR(你的字段名, 4, 3), '-'), SUBSTR(你的字段名, 1, 3)) AS overview

验证结果

用你给出的示例值LDABLD6A测试:

  • SUBSTR('LDABLD6A', 4, 3) 输出结果为BLD
  • SUBSTR('LDABLD6A', 1, 3) 输出结果为LDA
  • 拼接后最终结果为BLD-LDA,完全匹配需求

注意:你示例代码中用到的TABLE是Oracle保留关键字,如果你的字段名确实为这个,使用时需要加双引号包裹为"TABLE",否则会触发关键字识别报错。

内容的提问来源于stack exchange,提问作者Nicolai Olsen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 11:09:00