CHARINDEX作用
要写SQL语句,必须确定一个字符串是否包含另一个字符串,但SQL SERVER不像C#那样提供Contains函数。 但是,SQL SERVER提供了一个名为CHAEINDX的函数。 顾名思义,就是找到字符“char”的位置“index”,所以当然可以判断其位置。
如果在CHARINDEX中找到对应的字符串,则返回该字符串的位置,否则返回0。
基本语法如下。
CHARINDEX (expressionToFind , expressionToSearch [ , start_location ] )
expressionToFind :目标字符串。 要找到的字符串,最大长度为8000。
expressionToSearch :用于搜索的字符串。
start_location :开始搜索的位置。 如果为空,则默认从第一位开始搜索。
CHAEINDEX示例
1 .简单用法
selectcharindex('test ',' this Test is Test ' ) )。
查询结果:
2 .增加起始位置
selectcharindex('test ',' this Test is Test ',7 ) )。
查询结果:
3 .大小写敏感
selectcharindex('test ',' thistestistest ' collate latin1 _ general _ cs _ as ) )
查询结果:
结果是0吗? 不要怀疑你的眼睛。 由于大小写敏感,找不到test,所以返回的是0。 在简单的示例中,结果不为0,因为缺省情况下SQL SERVER对大小不敏感。 但是,由于可能需要特别区分大小写,因此专用的SQL SERVE提供了查询时区分大小写的特殊关键字。 其中,CS为Case-Sensitve的
4 .大小写不敏感
selectcharindex('test ',' thistestistest ' collate latin1 _ general _ ci _ as ) )。
查询结果:
也可以说明这样不区分大小写。 其中,CI是Case-InSensitve的缩写。 这意味着不区分大小写。 当然,你不需要多管闲事。
PATINDEX
与CHARINDEX类似,PATINDEX也可用于确定一个字符串是否包含另一个字符串。 两者的区别在于前者完全一致,后者支持模糊匹配。
1 .简单的例子
选择属性(“% ter %”,“interesting data”)。
查询结果:
2 .简单示例2
选择属性(“% t _ ng %”,“interesting data”)
查询结果:
PATINDEX还可以支持区分大小写。 这和CHARINDEX一样。 这里省略说明。
参考:
3359 docs.Microsoft.com/en-us/SQL/t-SQL/functions/charindex-transact-SQL
3359 docs.Microsoft.com/en-us/SQL/t-SQL/functions/patindex-transact-SQL
转载于:https://www.cn blogs.com/qianxingdewoniu/p/6858580.html