declare @test nvarchar(50)
set @test = 'abc'--'100'if isnumeric(@test)=1
select @test,cast(@test as numeric)
else
select @test,cast(@test as nvarchar)
set @test = 'abc'--'100'if isnumeric(@test)=1
select @test,cast(@test as numeric)
else
select @test,cast(@test as nvarchar)
set @test = 'abc'--'100'exec ('
select '+@test+',case isnumeric('+@test+') when 1 then cast('+@test+' as numeric) else cast('+@test+' as nvarchar) end')
case isnumeric(@test) when 1 then cast(@test as numeric) else cast(@test as nvarchar) end
是嵌套在另外一个CASE语句中,不能用IF来做啊!
我的帖子在http://community.csdn.net/Expert/topic/4926/4926487.xml?temp=.5838892
我很急用!
谢谢
你这个问题,可以找到很多样例,辛苦点自己找一下吧!
set @test = '100'--'100'select @test,case isnumeric(@test) when 1 then cast(@test as numeric) else cast(@test as nvarchar) end这样写可以吧
你把这字符'abc'转换成数值型,能不报错吗
case Code when 'C02' then case isnumeric(Formula) when 1 then convert(numeric,Formula) else Formula end end as 'C02'
from tableA