2016-11-08 26 views

回答

0

SELECT * FROM account WHERE MOD(amt, .02) > 0;

應該這樣做。

創建函數只是爲了做一個簡單的查詢可以做的事情沒有意義 - 也就是隻輸出符合條件的行。如果你真的需要一個功能,我想你可以做一個判斷,如果數爲奇數:

CREATE FUNCTION is_odd(amount float) RETURNS BOOLEAN 
BEGIN 
    DECLARE isodd BOOLEAN; 
    SET isodd = TRUE; 

    IF MOD(amount,.02) = 0 THEN 
     SET isodd = FALSE; 
    END IF; 

RETURN (isodd); 
END 

然後你就可以在查詢,而不是使用這樣的:

SELECT * FROM account where is_odd(amt);

+0

我需要編寫一個函數,而不僅僅是一個查詢。 –

+0

爲什麼它必須是一個功能? – wbrugato

+0

@wbrugato,不應該用MOD(amount,.02)來計算小數點後的數字嗎? – dazedandconfused

0

該查詢返回單數餘額

SELECT acno, amt 
    FROM 
    account 
WHERE (amt % 2) > 0;