我需要检查标记为 "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 ....
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 ....