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

如何使用SQL查询提取字符串中-001等后缀之前的数值

SQL提取字符串中「-」前缀数字段实现方案

核心逻辑是定位字符串中第一个-的位置,截取该位置之前的所有内容即可,不同数据库的具体实现如下:

  • MySQL
    直接调用内置SUBSTRING_INDEX按分隔符截取第一部分,语法最简洁:
SELECT SUBSTRING_INDEX(字段名, '-', 1) AS 结果字段名 FROM 表名;

测试验证:输入10008601-001时返回结果为10008601,输入25525601-021时返回25525601,完全符合需求。

  • PostgreSQL
    使用SPLIT_PART函数实现分隔符截取:
SELECT SPLIT_PART(字段名, '-', 1) AS 结果字段名 FROM 表名;
  • SQL Server
    使用LEFT搭配CHARINDEX定位截取,兼容无分隔符场景的写法如下:
SELECT 
  CASE WHEN CHARINDEX('-', 字段名) > 0 
       THEN LEFT(字段名, CHARINDEX('-', 字段名) - 1)
       ELSE 字段名 END AS 结果字段名
FROM 表名;
  • Oracle
    使用SUBSTR搭配INSTR实现定位截取:
SELECT SUBSTR(字段名, 1, INSTR(字段名, '-') - 1) AS 结果字段名 FROM 表名;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 16:24:05