可以做这样的事情吗?
declare @ShouldBeNumber as varchar(10)
set @ShouldBeNumber = 1
declare @Number as varchar(10)
select @Number = case when ISNUMERIC(@ShouldBeNumber) then @Number = @ShouldBeNumber else @Number = '' end
即仅当变量是数字时才对其进行赋值。我花了一个小时谷歌搜索这个,但没有找到任何东西。
例如,我查看了这里:How to check if a variable has a value in a SQL Server 2008 stored procedure
最佳答案
我想你只是想要:
select @Number = (case when ISNUMERIC(@ShouldBeNumber) = 1
then @ShouldBeNumber else @Number
end)
我假设 isnumeric()
可以满足您的要求,尽管根据您的需要它可能会出现一些不需要的行为(例如接受负数、小数和指数表示法)。 else
子句是一个无操作;它只是将现有值分配回@Number
。
关于sql - 仅当变量是数值时才为其赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61252445/