我在存储过程中用到一个变量
declare @var as varchar(10)
变量有可能存储的是字符串
set @var='aaaa'
也有可能存储的是整型的
set @var='3333'
我要判断这个变量中存的是否为整数还是字符串
如果是整数要
set @var=@var/1000
如果不是整数则退出过程问题是怎么判断变量中存储的是整数而不是字符串?
谢谢大家
declare @var as varchar(10)
变量有可能存储的是字符串
set @var='aaaa'
也有可能存储的是整型的
set @var='3333'
我要判断这个变量中存的是否为整数还是字符串
如果是整数要
set @var=@var/1000
如果不是整数则退出过程问题是怎么判断变量中存储的是整数而不是字符串?
谢谢大家
declare @var as varchar(10)
set @var='aaaa'
Select IsNumeric(@var)
set @var='3333'
Select IsNumeric(@var)
set @var='aaaa'
Select IsNumeric(@var)
set @var='3333'
Select IsNumeric(@var)
/*
0
1
*/
決定運算式是否為有效的數值型別。語法
ISNUMERIC ( expression )引數
expression是要驗算的運算式。傳回型別
int備註
當輸入運算式驗算為有效整數、浮點數字、money 或 decimal 型別時,ISNUMERIC 會傳回 1,否則會傳回 0。傳回值為 1 確保 expression 可被轉換成這些數值型別之一。
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