SUBSTRING/CHARINDEX 截取第一个逗号后面的所有字符

 
CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )
       expressionToFind :目标字符串,就是想要找到的字符串,最大长度为8000 。
   expressionToSearch :用于被查找的字符串或字段。如果这字符,需要加引号,如果是表里的字段,则不需要加引号。
       start_location:开始查找的位置,为空时默认从第1位开始查找。第1位就是1,而非0.

SUBSTRING ( expression, start, length )
参数
expression
字符串、二进制字符串、文本、图像、列或包含列的表达式。请勿使用包含聚合函数的表达式。
start
整数或可以隐式转换为 int 的表达式,指定子字符串的开始位置,索引是从1开始。
length
整数或可以隐式转换为 int 的表达式,指定子字符串的长度。经测试,暂且发现只能是非负数。
返回值
1.如果 expression 是一种支持的二进制数据类型,则返回二进制数据,这种情况我们暂且不讨论。
2.如果 expression 是一种支持的字符数据类型,则返回字符数据。
substring(expression,charindex(',',expression)+1,len(expression)-charindex(',',expression))
charindex(',',expression)+1 从指定的字符串Expression或表字段中查找逗号的位置并且加1,表示从逗号的下一个位置开始算起。
len(expression)-charindex(',',expression) "字符串的长度"减去"逗号所在的位置"。
substring(expression,charindex(',',expression)+1,len(expression)-charindex(',',expression)) 就表示从第一个逗号的下一个位置开始截取至字符串末尾的全部字符。
 
charindex(',','www.baidu,com_cn') --从第一个字符串开始,返回第一个逗号所在的位置,结果为10.
charindex(',','www.baidu,com_cn')+1  --结果为11,表示从逗号后第11位开始算起。
len('www.baidu,com_cn') - charindex(',','www.baidu,com_cn') 结果为6,表示逗后之后共有6个字符。
substring('www.baidu,com_cn',charindex(',','www.baidu,com_cn')+1,len('www.baidu,com_cn')-charindex(',','www.baidu,com_cn'))表示从逗号之后截取6个字符,结果为com_cn.
 
 
 
 

猜你喜欢

转载自www.cnblogs.com/rusking/p/12121672.html