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

如何提取ID字段中两个下划线之间的字符?SQL语句求助

提取两个下划线之间字符的SQL解决方案

你的原SQL语句存在语法错误(CHARINDEX('_', ItemID + )部分缺少拼接内容),且逻辑仅能截取第一个下划线前的内容。要提取两个下划线之间的字符,可根据使用的SQL方言选择以下方法:

通用方案(适配多数SQL数据库)

通过两次定位下划线位置,精准截取中间内容:

SELECT 
  SUBSTRING(
    itemID, 
    CHARINDEX('_', itemID) + 1, 
    CHARINDEX('_', itemID, CHARINDEX('_', itemID) + 1) - CHARINDEX('_', itemID) - 1
  ) AS PartID
FROM your_table;
  • CHARINDEX('_', itemID):获取第一个下划线的位置
  • CHARINDEX('_', itemID, CHARINDEX('_', itemID)+1):从第一个下划线的下一位开始,定位第二个下划线的位置
  • 起始位置设为第一个下划线位置+1,长度为第二个下划线位置减去第一个下划线位置再减1,以此截取中间段

MySQL 简化写法

用SUBSTRING_INDEX函数实现更简洁:

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(itemID, '_', 2), '_', -1) AS PartID
FROM your_table;
  • SUBSTRING_INDEX(itemID, '_', 2):截取从开头到第二个下划线的部分(例如12345_B24L)
  • 嵌套SUBSTRING_INDEX(..., '_', -1):提取上述结果中最后一个下划线后的内容,即目标中间段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 19:37:03