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

Oracle SQL中如何按长度条件截取子串(仅97位时取前48位)

没问题,这个需求用SQL的条件判断就能轻松解决,给你整理好的语句和细节说明:

实现语句
SELECT 
    CASE 
        WHEN LENGTH(CLNT_ID) = 97 THEN SUBSTR(CLNT_ID, 1, 48)
        ELSE CLNT_ID
    END AS PROCESSED_CLNT_ID
FROM CLNT;
细节解释
  • 条件判断逻辑:通过CASE WHEN检查CLNT_ID的长度是否等于97,只在满足这个条件时执行截取操作,否则直接保留原内容,完美匹配你的需求。
  • 关于SUBSTR的起始索引:大部分SQL方言(比如Oracle、MySQL)中SUBSTR的起始索引是1,如果你使用的数据库(比如PostgreSQL)起始索引是0,把1改成0就可以,两种写法截取的前48个字符结果是一致的。
  • 列别名:用AS PROCESSED_CLNT_ID给处理后的列起了一个明确的别名,方便在存储过程中后续引用这个处理后的值。

内容的提问来源于stack exchange,提问作者Sanjay Jain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:48:10