日期:2014-05-19  浏览次数:20601 次

在存储过程中怎样判断一个变量不是数值型?
我在存储过程中用到一个变量
declare   @var   as   varchar(10)
变量有可能存储的是字符串
set   @var= 'aaaa '
也有可能存储的是整型的
set   @var= '3333 '
我要判断这个变量中存的是否为整数还是字符串
如果是整数要
set   @var=@var/1000
如果不是整数则退出过程

问题是怎么判断变量中存储的是整数而不是字符串?
谢谢大家


------解决方案--------------------
isnumeric(变量)=1
------解决方案--------------------

declare @var as varchar(10)
set @var= 'aaaa '
Select IsNumeric(@var)
set @var= '3333 '
Select IsNumeric(@var)

------解决方案--------------------
declare @var as varchar(10)
set @var= 'aaaa '
Select IsNumeric(@var)


set @var= '33d33 '
Select IsNumeric(@var)

select patindex( '%[^0-9]% ',@var)

if patindex( '%[^0-9]% ',@var)> 0
print '含有字符 '
else
print '数字 '


------解决方案--------------------

declare @var as varchar(10)
set @var= 'aaaa '
--set @var= '3333 '
if isnumeric(@var)=1 --加个判断!
set @var=cast(@var as float)/1000.0
SELECT @VAR