SQL中判断字符串中包含字符的方法

CHARINDEX:查某字符(串)是否包含在其他字符串中,返回字符串中指定表达式的起始位置。

PATINDEX:查某字符(串)是否包含在其他字符串中,返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。从1开始下标(两者的区别在于,后者支持模糊匹配,前者是全匹配)

1.SELECT PATINDEX('%[^0-9]%', '1235X461') 结果 5
2.SELECT PATINDEX('%[^0-9]%', '12350461')  结果 0
3.SELECT PATINDEX('%[0-9]%', 'SUYLLG0') 结果 7
4.SELECT PATINDEX('%[0-9]%', 'SUYLLG01') 结果 7

5.select PATINDEX('%ter%','interesting data') 结果 3

6.select PATINDEX('%t_ng%','interesting data') 结果 8

7.SELECT CHARINDEX('5', '1235X461') 结果 4 没找到就是0  第一个参数是查找的字符(串),第二个是被查找字符串

8.select charindex('test','this Test is Test'COLLATE Latin1_General_CS_AS)  结果0  区分大小写CS

9.select charindex('test','this Test is Test'COLLATE Latin1_General_CI_AS)  结果6  不区分大小写CI

(自己实践和整理别人资料,不做商业用途,只做学习交流使用)

猜你喜欢

转载自www.cnblogs.com/wxlhyg/p/9046343.html