2016-03-27 31 views
0

剛開始用SQL,我試圖做一個簡單的UPDATE語句。由於某種原因,它不工作。的代碼如下真的很簡單的UPDATE查詢不起作用

UPDATE batting SET BA = (h/ab);

它運行後,它通過零錯誤返回一個除法。

每當我用該公式使用簡單的選擇語句,它工作正常。我需要做什麼?

+0

的H和AB數據類型???? – Naruto

+0

來自拉曼棒球數據庫的擊球和擊球。這不是我自己的數據庫。 – saberfan7

回答

0

您正在收到該錯誤,因爲某些記錄ab的值爲0。要跳過那些recods,您可以使用CASE語句更新,例如:

UPDATE batting 
SET BA = CASE 
      WHEN ab = 0 THEN BA 
      ELSE h/ab 
     END 
WHERE //condition 
+0

完美,謝謝! – saberfan7

+0

如果它對你有幫助,你可以接受我的答案爲正確答案:) –

+0

這也可以寫成更新擊球集ba = IF(ab = 0; ba; h/ab)其中......'(參見[這裏] (http://dev.mysql.com/doc/refman/5.7/en/control-flow-functions.html#function_if))。是的,@ saberfan7,請給予Darshan學分。 – PerlDuck