sqlserver substring函数

原创 2012年03月27日 16:15:17
函数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,0,5)

@subStr值为'1234'

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

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

@subStr值为'123'

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

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

相关文章推荐

sqlserver 中的 substring函数

http://www.cnblogs.com/lingxyd/archive/2009/02/28/1400263.html SUBSTRING 返回字符、binary、text 或 imag...

SqlServer中SubString与CharIndex函数的使用 SubString和CharIndex结合使用

SqlServer中SubString与CharIndex函数的使用 SubString和CharIndex结合使用

oracle中 substring函数的使用

  • 2013年06月21日 11:19
  • 1KB
  • 下载

【Sqlserver】【Function】实现mysql substring_index

sqlServer实现Mysql的substring_index函数 step1 基本实现 IF OBJECT_ID('dbo.SubstringIndex') IS NOT NULL DRO...

SqlServer substring用法

SUBSTRING 返回字符、binary、text 或 image 表达式的一部分。有关可与该函数一起使用的有效 Microsoft® SQL Server™ 数据类型的更多信息,请参见数据类...
  • ztzi321
  • ztzi321
  • 2014年04月26日 10:24
  • 711

SQLServer中使用SUBSTRING截取字符串

SUBSTRING  返回字符、binary、text      或      image      表达式的一部分。有关可与该函数一起使用的有效      Microsoft®      ...
  • F7ANTY
  • F7ANTY
  • 2013年12月01日 21:10
  • 968

Mysql字符串截取函数SUBSTRING的用法说明

函数: 1、从左开始截取字符串 left(str, length) 说明:left(被截取字段,截取长度) 例:select left(content,200) as abstract...

MySQL字符串函数substring:字符串截取

MySQL 字符串截取函数:left(), right(), substring(), substring_index()。还有 mid(), substr()。其中,mid(), substr() ...

substring 函数

返回第一个参数中从第二个参数指定的位置开始、第三个参数指定的长度的子字符串。    string substring(string, number, number?)    备注 该字符串中的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sqlserver substring函数
举报原因:
原因补充:

(最多只允许输入30个字)