我需要检查标记为 "difference" 的数学计算是否给出负值,如果为负值,那么如何使它变为正值?

I need to check if the mathematical calculation labelled as "difference" is giving negative value , if negative then what to do make it positive?

SELECT a.name ,  b.name , **(a.marks - b.marks ) AS "difference"**

FROM a , b

WHERE  a.marks - b.marks < 1  AND a.marks - b.marks > -1 AND  a.marks2 - b.marks2 < 1  AND a.marks2 - b.marks2 > -1

ORDER BY `difference` ASC

你可以试试 ABS() 那 Return 绝对值

来自 MySql 手册:

ABS(X)

Returns the absolute value of X.

mysql> SELECT ABS(2);

    -> 2 

mysql> SELECT ABS(-32);

    -> 32

所以:

SELECT ABS(-5) + ABS(5)

Return -> 10

SELECT ABS(5-15)

Return -> 10

ABS() 也可用于变量:

SET @Var :=-5;
SELECT ABS(@Var) + ABS(5)

Return -> 10

如果我明白你想要什么,你可以试试下面提到的 if() 函数:

Select a.name, b.name, if((a.marks - b.marks) < 0,((a.marks-b.marks)*(-1),  (a.marks-b.marks)) as difference
from a , b ....