假设我有一个数字62.这是由2位数组成的
如何将2位数加在一起除以10,如果结果= 6.2之类的东西只需要提醒
declare @Number int,@Result int
set @Number =62
if len(@Number) > 1
set @Result=????=--Add 6 and 2 =8
set @result=@result % 10 --Mod operator
print @result
-- the result should be 2 in this case
我做错了什么?
非常感谢
答案 0 :(得分:1)
我认为@Number % 10
正是您所寻找的。它返回任何数字的最后一位数字。 62 - > 2,97 - > 7等...
更新
我可能误解了这个问题。也许你想要10 % ((@Number / 10) + @Number)
。
(@Number / 10) + @Number
是两位数字的数字之和。
答案 1 :(得分:1)
set @tens = floor(@Number / 10);
set @ones = @number - @tens;
set @Result = @tens + @ones;
或使用left
和right
访问子字符串。
答案 2 :(得分:1)
我无法尝试:
DECLARE @Number VARCHAR(2)
SET @Number = '62'
declare @firstNum INT, @secondNum INT
SET @firstNum = CAST(SUBSTRING(@Number, 1, 1) AS INT)
SET @secondNum = CAST(SUBSTRING(@Number, 2, 1) AS INT)
DECLARE @Result int
SET @Result = (@firstNum + @secondNum) % 10
答案 3 :(得分:0)
如果号码总是两位数,那么我会使用LEFT(@Number,1)
和RIGHT(@Number,1)
来访问每个数字。如果不是,请回复,我会给你一些你需要的循环帮助。
更迫切的问题是你期待2,但是8 mod 10的结果是8.如果你正在寻找2,那么总和是10 mod 8 (10 % @Result)
。
无论如何,如果这不能完全回答你的想法,请回击我。
答案 4 :(得分:0)
试试这个
declare @myNumber float,@result float
set @myNumber = 62
select
@result = (case when len(@myNumber) = 1 then @myNumber
else (@myNumber /10) + cast(@myNumber as int) % 10 end)
select [Output] = STUFF(
cast(@result as varchar(50))
,1
,charindex('.',cast(@result as varchar(50)))
,'')
Output
2
希望这有帮助
如果您只想添加2个数字,请尝试此操作(尽管已在上面实施)
declare @myNumber int,@result int
set @myNumber = 62
select
Result = (case when len(@myNumber) = 1 then @myNumber
else (@myNumber /10) + @myNumber % 10 end)
Result
8
答案 5 :(得分:0)
所以我想你想要这样的东西 - 解析代表你的数字的字符串,将各个数字加起来作为整数值。这最终会给你一个总结果 - 然后你做任何你需要做的事情。此代码适用于任何长度的字符串(最多50个字符=原始数字中的50个数字):
DECLARE @Number INT
SET @Number = 62
DECLARE @NumString VARCHAR(50)
SET @NumString = CAST(@Number AS VARCHAR(50))
DECLARE @Index INT
SET @Index = 1
DECLARE @Sum INT
SET @Sum = 0
WHILE @Index <= LEN(@NumString)
BEGIN
SET @Sum = @Sum + CAST(SUBSTRING(@NumString, @Index, 1) AS INT)
SET @Index = @Index + 1
END
SELECT @Sum AS 'Sum of all digits'
对于@Number的初始值为“62”,我得到8的结果 - 现在您可以继续使用该值。
如果您经常需要此功能,我可能会将其封装到用户定义的函数中,以便您可以在代码中的任何位置调用它。