SQLServer取字符串常⽤的函数
⼀、SQL 截取字符串
1、LEFT ( character_expression , integer_expression )
函数说明:LEFT ( '源字符串' , '要截取最左边的字符数' )
返回从字符串左边开始指定个数的字符
2、RIGHT ( character_expression , integer_expression )
函数说明:RIGHT ( '源字符串' , '要截取最右边的字符数' )
返回字符串中从右边开始指定个数的 integer_expression 字符
3、SUBSTRING ( character_expression , start , length )
函数说明:SUBSTRING ( '源字符串' , '截取起始位置(含该位置上的字符)' , '截取长度' )
返回字符、binary、text 或 image 表达式的⼀部分
⼆、SQL字符串查
1、 CHARINDEX ( expression1 , expression2 [ , start_location ] )
参数
CHARINDEX
返回字符串中指定表达式的起始位置。
语法
CHARINDEX ( expression1 , expression2 [ , start_location ] )
参数
expression1
⼀个表达式,其中包含要寻的字符的次序。expression1 是⼀个短字符数据类型分类的表达式。
expression2
⼀个表达式,通常是⼀个⽤于搜索指定序列的列。expression2 属于字符串数据类型分类。
start_location
在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,⽽是⼀个负数或零,则将从 expression2 的起始位置开始搜索。
返回类型
int
select * from table_a where charindex('a',id)>0 or charindex('b',id)>0
table_a 表中 id字段中含有"a"或者"b"的记录。
2、PATINDEX ( "%pattern%" , expression )
PATINDEX函数返回字符或者字符串在另⼀个字符串或者表达式中的起始位置,PATINDEX函数⽀持搜索字符串中使⽤通配符,这使PATINDEX函数对于变化的搜索字符串很有价值。
Pattern是你要搜索的字符串,expression是被搜索的字符串。⼀般情况下expression是⼀个表中的⼀个
字段,pattern的前后需要⽤“%”标记,除⾮你搜索的字符串在被收缩的字符串的最前⾯或者最后⾯。和CHARINDEX函数⼀样,PATINDEX函数返回搜索字符串在被搜索字符串中的起始位置。假如有这样⼀个PATINDEX函数:
PATINDEX("%BC%","ABCD")
这个PATINDEX函数返回的结果是2,这和CHARINDEX函数⼀样。这⾥的%标记告诉PATINDEX函数去字符串“BC”,不管被搜索的字符串中在“BC”的前后有多少字符!
假如你想知道被搜索字符串是否由特定的字符串开始,你可以省去前⾯的%标记。PATINDED函数就要这样写:
PATINDEX("AB%","ABCD")
这个命令执⾏的结果返回1,表⽰搜索的字符串“AB”在被搜索的字符串中“ABCD”被到。
使⽤通配符可以编辑⽐我以上举得简单例⼦复杂得多的搜索字符串。假如说你要确定⼀个字符串是否包含字母A和Z,还有任何数字,这个PARINDEX函数命令可能像这样:
PATINDEX("%[A,Z,0-9]%[A,Z,0-9]%[A,Z,0-9]%","XYZABC123")
Description字段中是包含单词“Bread”或“bread”的所有记录,那么选择语句就可能是这样:
SELECT Description from Northwind.dbo.Categories
WHERE patindex("%[b,B]read%",description) > 0
这个例⼦是如何选出上⾯的查询结果中,Description字段的第⼆⼦字母不是“e”的纪录。
select Description from Northwind.dbo.Categories
where patindex("%[b,B]read%",description) > 0
and patindex("_[^e]%",description) = 1
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论