2014-12-04 53 views
0

我想从mysql中获取数据,其中一个字段是在mysql中计算的。mysql正在计算预填表字段

例如:我有一个X,Y和Z字段。我想创建一个名为'A'的新字段,其中'A'是(X + Y)/ Z的计算值。
捕捉是Z!= 0,所以如果Z是0,那么Z将被改变为1以避免无限数字(1/0 = ??)。

问题是我可以计算出这个成为一个新的字段在mysql?

我想出了这是

SELECT X, Y, Z, ((X+Y)/Z) as A FROM table 

但是,我还是不能过滤z,以使如果Z == 0,则Z = 1。我可以这样做吗?

回答

0

用户的MySQL CASE WHEN语法:

SELECT (CASE WHEN Z != 0 THEN ((X+Y)/Z) 
ELSE X) AS A 
FROM table 
+0

非常感谢你 :) – godheaper 2014-12-04 08:26:09

0

化妆用的case

SELECT X, Y, Z, ((X+Y)/ CASE WHEN Z != 0 THEN Z ELSE 1 END) as A FROM table 
0

使用解码声明,这里将帮助

select x,y, DECODE (z,0,1,z) denom,((X+Y)/denom) from table 
Syntax DECODE (what,(when,then),default) 

让我知道这是否给出正确的结果