获取mysql表中两行中两个数字的差

xpcnnkqh  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(457)

这是我的table parameters_info .

name                     | value
---------------------------------
fee for normal scan      |20
fee for especial scan    |500

我想得到的值(特殊扫描费-正常扫描费)是480;
如何使用mysql实现这一点?

eh57zj3b

eh57zj3b1#

你可以这么做:

SELECT (SELECT value FROM t WHERE name = 'fee for especial scan') - 
       (SELECT value FROM t WHERE name = 'fee for normal scan')
mefy6pfw

mefy6pfw2#

可以使用条件聚合 Sum() 功能。它可能比使用多个不相关的子查询更有效:

SELECT SUM(CASE name 
                WHEN 'fee for especial scan' THEN value
                WHEN 'fee for normal scan' THEN -1*value
                ELSE 0
           END)
FROM your_table

相关问题