在SQL Server中的patindex中,^的用法是什么?

时间:2019-04-05 10:17:43

标签: sql-server

执行此操作

select PATINDEX('%[0 ]%', '03/SI/00807/18-19')

我得到1

通过像这样使用^

select PATINDEX('%[^0 ]%', '03/SI/00807/18-19') 

我得到2

2 个答案:

答案 0 :(得分:1)

[^] 允许您匹配不在[^]括号内的任何字符(例如,[^ abc]可以匹配非a,b或c字符的任何字符)

[] 允许您匹配[]括号中的任何字符(例如[abc]可以匹配a,b或c字符)

_ 允许您匹配单个字符

允许您匹配任何长度(包括零长度)的任何字符串

答案 1 :(得分:0)

[^abcd]的意思是:除了a,b,c或d之外的任何一个字符

select PATINDEX('%[0 ]%', '03/SI/00807/18-19')

字符串中的第一个字符(0或空格)首先是0,因此patindex返回1。

select PATINDEX('%[^0 ]%', '03/SI/00807/18-19') 

字符串中的第一个字符是( 0 都不是空格),第二个字符是3,因此patindex返回2。