方案1:ISNUMERIC
函數
數字類型返回 1 ,非返回 0
select ISNUMERIC ( '.12321' ) isNum;
select ISNUMERIC ( '.123aa21' ) isNum;
1
0
方案2:PATINDEX
正則
數字類型返回0,非返回1
對負數、負小數,暫未研究,後期補上。
select PATINDEX ( '%[^0-9]%' , '12321' );
select PATINDEX ( '%[^0-9]%' , '.12321' );
select PATINDEX ( '%[^0-9]%' , '.123aa21');
select PATINDEX ( '%[^0-9.]%' , '.12321' );
0
1
1
0
參考資料:
- https://blog.csdn.net/fox009521/article/details/78918811(該鏈接中,對ISNUMERIC有一點誤解,也可能是該函數被優化過)