SQL server判断是否为数字

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

猜你喜欢

转载自blog.csdn.net/qq_38892977/article/details/121399061