日期:2014-05-18  浏览次数:20679 次

MS-SQL中判断字段为 0-9的阿拉伯数字
在存储过程中定义如下:
...
DECLARE   @TELNO   AS   NVARCHAR(100)
SET   @TELNO   =   '-123,5.67 '
PRINT   ISNUMERIC   (@TELNO)
------------------
1
用ISNUMERIC可以检查是否为数字,但我想检查是不是0-9的阿拉伯数字
该怎么处理?

------解决方案--------------------
DECLARE @TELNO AS NVARCHAR(100)
SET @TELNO = '-123,5.67 '
--仅以 + , - . 四符号为例
if charindex( '- ',@telno) > 0 or charindex( '+ ',@telno) > 0 or charindex( '. ',@telno) > 0 or charindex( ', ',@telno) > 0
print '包含其他符号 '
else
print '仅 0-9 '

------解决方案--------------------
DECLARE @TELNO AS NVARCHAR(100)
SET @TELNO = '434.3 '
IF patindex( '%[^0-9]% ',@TELNO)> 0
PRINT 'False '
ELSE
PRINT 'Ok '