日期:2014-05-17  浏览次数:20735 次

求sql类型转换问题

@kxjxgnr nvarchar(300)
@x int

set @x=CAST(@kxjxgnr as int)

问题是如果@kxjxgnr不是数字,怎么得到错误返回结果呢?

------解决方案--------------------
SQL code

 if patindex('%[^0-9]%',@kxjxgnr) = 0
begin
---只含有数字
end
else
begin
--含有其他字符
end

------解决方案--------------------
SQL code
set @x= case when ISNUMERIC( @kxjxgnr ) then CAST(@kxjxgnr as int) else 0 end;