字符串比较函数CHARINDEX()、PATINDEX()、REPLICATE()、REVERSE()、REPLACE()、SPACE()、STUFF()
1、CHARINDEX()
返回字符串中某个指定的子串出现的开始位置。
CHARINDEX (<’substring_expression’>, )
其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。
此函数不能用于TEXT 和IMAGE 数据类型。
2、PATINDEX()
返回字符串中某个指定的子串出现的开始位置。
PATINDEX (<’%substring _expression%’>, [, quote_ character]) 其中quote_ character 标明括字符串所用的字符,缺省值为“[]”。
3、REPLICATE()
返回一个重复character_expression 指定次数的字符串。
REPLICATE (character_expression integer_expression) 如果integer_expression 值为负值,则返回NULL 。
4、REVERSE()
将指定的字符串的字符排列顺序颠倒。
REVERSE () 其中character_expression 可以是字符串、常数或一个列的值。
5、REPLACE()
返回被替换了指定子串的字符串。
REPLACE (, , ) 用string_expression3 替换在string_expression1 中的子串string_expression2。
6、SPACE()
返回一个有指定长度的空白字符串。
SPACE () 如果integer_expression 值为负值,则返回NULL 。
7、STUFF()
用另一子串替换字符串指定位置、长度的子串。
STUFF (, , ,)
如果起始位置为负或长度值为负,或者起始位置大于character_expression1 的长度,则返回NULL 值。
如果length 长度大于character_expression1 中 start_ position 以右的长度,则character_expression1 只保留首字符。
执行:
- select charindex('bd','cabdif',0)--CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置。CHARINDEX ( expression1 , 源字符串 [ , start_location ] )
- select PATINDEX('AB%','ABCD') --返回字符串中某个指定的子串出现的开始位置
- select REPLACE ('abcdefg','de','123')--返回被替换了指定子串的字符串。
- select REPLICATE('a',6) as REPLICATE--让'a'重复出现六次
- select stuff('abcdef',1,2,'ghi') as stuff--用另一子串替换字符串指定位置、长度的子串。STUFF (, , ,)
- select REVERSE('1234567') as REVERSE --将指定的字符串的字符排列顺序颠倒
- 得到结果如下: