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

如何结合INSTR与SUBSTR获取最右侧空格后的最后子串?

解决方案

你不用纠结提取长度的问题——绝大多数SQL方言里的SUBSTR(或SUBSTRING)函数,如果省略第三个长度参数,会自动提取从指定起始位置到字符串末尾的所有字符。

结合你已经用INSTR(Column B, ' ', -2)定位到最后一个空格的位置,只需要把提取的起始位置设为「空格位置+1」,直接调用SUBSTR即可:

SELECT 
  Column A,
  SUBSTR(Column B, INSTR(Column B, ' ', -2) + 1) AS Target_Result
FROM your_table;

用你的数据集测试:

  • 第一行Column B为Apple Banana,INSTR返回最后一个空格的位置是6,6+1=7,SUBSTR(Column B,7)直接得到Banana;
  • 第二行Column B为Corn Chips,INSTR返回5,5+1=6,SUBSTR(Column B,6)得到Chips,完全匹配需求。

补充不同数据库的适配

如果你的数据库使用SUBSTRING(比如SQL Server),逻辑同理,省略长度参数即可;也可以用反向字符串的思路实现,以下是兼容写法:

SELECT 
  Column A,
  SUBSTRING(Column B, CHARINDEX(' ', Column B, LEN(Column B) - CHARINDEX(' ', REVERSE(Column B))) + 1, LEN(Column B)) AS Target_Result
FROM your_table;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:31:12