加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sqlserver substring函数

发布时间:2020-12-12 14:42:02 所属栏目:MsSql教程 来源:网络整理
导读:函数subString有三个参数,帮助文档中给出这三个参数的意义,如下: $sourceString 资源字符串。 $startingLoc 子字符串在资源字符串中的起点。 如果此值为负数或 0,则只返回那些所在位置大于零的字符。 如果此值大于 $sourceString 的长度,则返回长度为零
函数subString有三个参数,帮助文档中给出这三个参数的意义,如下:
  1. $sourceString 资源字符串。
  2. $startingLoc 子字符串在资源字符串中的起点。如果此值为负数或 0,则只返回那些所在位置大于零的字符。如果此值大于 $sourceString 的长度,则返回长度为零的字符串。
  3. $length [可选] 要检索的字符数。如果没有指定此值,它将返回$startingLoc 中指定的位置开始直到字符串末尾的所有字符。

在试验中,本人发现第二个参数的解释中“如果此值为负数或 0,则只返回那些所在位置大于零的字符”有特殊的意义,也是一个陷阱:负数或0也将占去字符的位置。

举个例子:

declare @str nvarchar(20)

declare @subStr nvarchar(20)

set @str='123456'

set @subStr=subString(@str,1,5)

print @subStr

结果: @subStr值为'12345'

如果第二个参数$startingLoc给负数或0时,负数或0也将占去字符的位置,

比如:

set @subStr=subString(@str,5)

@subStr值为'1234'

位置0上没有字符,却占去一位的长度

set @subStr=subString(@str,-1,5)

@subStr值为'123'

位置-1和位置0上没有字符,却占去了两位的长度。

所以得出以下结论:使用函数subString时,第二个参数$startingLoc虽然可以给0或负数,但最好给实际的开始位置,避免造成不必要的麻烦。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读