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

如何编写SQL提取1000字符后或最近句号后的剩余文本

提取剩余文本的反向SQL解决方案

原SQL逻辑回顾

Solomon Rutzky编写的以下SQL语句,用于截取文本的前1000字符,且在这1000字符范围内保留到最后一个句号为止的内容:

LEFT(LEFT(@Text, 1000),
 1001 - CHARINDEX('.', REVERSE(LEFT(@Text, 1000)))) 

反向逻辑SQL实现

要提取上述截取位置之后的剩余文本,可通过以下SQL实现:

SELECT SUBSTRING(@Text,
       LEN(LEFT(LEFT(@Text, 1000), 1001 - CHARINDEX('.', REVERSE(LEFT(@Text, 1000) + '.')))) + 1,
       LEN(@Text)) AS RemainingText;

逻辑说明

  • 处理无句号场景:在REVERSE(LEFT(@Text, 1000) + '.')中额外添加一个句号,避免原前1000字符无句号时CHARINDEX返回0,确保截取长度计算准确。
  • 计算已截取长度:复用原SQL的逻辑,算出已截取部分的总长度。
  • 提取剩余内容:用SUBSTRING从已截取长度的下一位开始,提取到文本末尾的所有内容。如果原文本已被完全截取,结果会返回空字符串,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 00:45:12