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

SQL Server是否仍无截取指定位置至末尾的内置substring函数?

SQL Server 2023中SUBSTRING函数是否支持省略长度参数?
  • 截至2023年,SQL Server的内置SUBSTRING函数仍然不支持省略长度参数,必须同时传入起始位置和长度两个参数才能调用。
  • 针对“从指定位置取到字符串末尾”的需求,推荐几种更可靠的替代方案:
    • 使用STUFF函数:STUFF(s, 1, 2, ''),该写法直接移除字符串前2个字符,等价于从第3位取到末尾,可读性远优于手动计算长度。
    • 若必须使用SUBSTRING,需根据字符串类型精准计算长度:
      • 非Unicode类型(char/varchar):SUBSTRING(s, 3, DATALENGTH(s) - 2),DATALENGTH返回实际字节数,不会忽略尾随空格。
      • Unicode类型(nchar/nvarchar):SUBSTRING(s, 3, (DATALENGTH(s)/2) - 2),因Unicode字符占2字节,需除以2得到实际字符数。
      • 注意:LEN()函数会自动截断尾随空格,仅当业务逻辑允许忽略尾随空格时,才可使用SUBSTRING(s, 3, LEN(s)-2),不符合需求时切勿使用。
  • 社区长期存在对“SUBSTRING支持省略长度参数”的需求,但截至2023年微软尚未在SQL Server中添加该功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 15:22:03