SQL - 如何检索正确的数字

时间:2017-07-01 22:47:58

标签: sql database

我写了一个个人伪代码来帮助别人理解我想要实现的目标。我是SQL的初学者,但我知道所有的基础知识,只是对可能性没有足够的经验。

我尝试使用SELECT CASE,但它无法满足我的需求。

这是我的示例数据

CREATE TABLE Records
    ([ColA] INTEGER, [ColB] INTEGER, [ColTotal] INTEGER)
;

INSERT INTO Records
    ([ColA], [ColB] )
VALUES
    ('3', '4'),
    ('4', '2’),
    ('1', '2'),
    ('3', '5'),
    ('3', '1'),
    ('2', '2')
;

这是我的PSEUDOCODE(我在接受回答之后发现我的psuedo中的逻辑也是错误的。这已经修复了)

SELECT COL A, COL B, COL TOTAL
IF COL A  >= COLB THEN
ADD COLB value to COL TOTAL
ELSE
USE Value from COLA and add to total
END IF

这是我的SQL

SELECT SUM(ColTotal)
FROM t
WHERE ColA >= ColB

1 个答案:

答案 0 :(得分:3)

这是你想要的吗?

select sum(case when a < b then a else b end) as total
from t;

许多数据库都支持least()函数,这使得这个更简单:

select sum(least(a, b)) as total
from t;