2014-12-04 85 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) 

讓我知道這是否給出正確的結果