case语法-2个值的减法给出了不正确的数字

jexiocij  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(608)

**结案。**此问题不可复制或由打字错误引起。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

11个月前关门了。
改进这个问题
我正在做这个任务:

我基于此编写的代码是:

SELECT Number1, Number2, MathOperation, Result = CASE
WHEN MathOperation = 'Addition' THEN Number1 + Number2
WHEN MathOperation = 'Substraction' THEN Number1 - Number2
WHEN MathOperation = 'Multiplication' THEN Number1 * Number2
ELSE Number1 / Number2
END
FROM @Math;

减法结果(秒when)与除法结果(else)相同,这是不正确的。我不确定我做错了什么。你能帮忙吗?

cxfofazt

cxfofazt1#

它给出了正确的结果。
您的查询工作不正常/行为不正常并产生错误的结果,这可能是因为表中的数据 Subtraction 以及case语句中的值 Substraction 是不同的。

create table Math(id int identity(1, 1) primary key
, Number1 decimal(16, 2)
, Number2 decimal(16, 2)
, MathOperation NVARCHAR(100))

insert into Math values
  (128, 48, 'Addition')
, (128, 48, 'Substraction')
, (128, 48, 'Multiplication')
, (128, 48, 'Division')

SELECT Number1
    ,Number2
    ,MathOperation
    ,Result = CASE 
        WHEN MathOperation = 'Addition'
            THEN Number1 + Number2
        WHEN MathOperation = 'Substraction'
            THEN Number1 - Number2
        WHEN MathOperation = 'Multiplication'
            THEN Number1 * Number2
        ELSE Number1 / Number2
        END
FROM Math

db<>小提琴演示

相关问题