select PATINDEX('%[^0-9|.|-|+]%','123.4');
是就返回0不是就返回1或者其他的数字
PATINDEX简析:
1.类似于sql里面的like用法,%%匹配到指定表达式里的位置,一个都没有找到就返回0找到了就返回所在位置如:select PATINDEX('%2%','123.4');这里会返回2,因为2在123.4里面所处的位置是第二位。
2.select PATINDEX('2%','123.4');
意思是从左边开始找,找到了返回1找不到返回0,不管后面有没有
3.select PATINDEX('%2','123.4');
从右边开始找,找到了返回1找不到返回0
4.select PATINDEX('123.4','123.4');
精确查找,必须全部相同,找到了返回1,找不到返回0
5.select PATINDEX('%[23]%','123.4');
返回2或3第一次出现的位置,这里返回2,因为2在123.4中的位置是第二个
6.select PATINDEX('%[^1]%','123.4');
这里返回2,因为在123.4中最先不等于1的是第二个位置
7.select PATINDEX('%[^3]%','123.4');
这里返回1,因为123.4中第一个值就不等于3
8.select PATINDEX('%[^0-9]%','1234');
这里返回0,因为除了0-9的任何字符在1234中找不到,1234全部都是数字
9.select PATINDEX('%[0-9]%','1234');
这里返回1,因为在1234中第一个就是数字
10.select PATINDEX('%[^0-9|.]%','1234.4');
这里返回0,[^0-9|.]表达式为0-9的数字或.在123.4中不存在情况,这里存在0-9和.所以返回0