2016-11-08 4 views

Antwort

0

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

sollte es tun.

Es macht nicht wirklich Sinn, eine Funktion zu erstellen, nur um zu tun, was eine einfache Abfrage tun kann - das heißt, geben Sie nur die Zeilen aus, die Ihren Kriterien entsprechen. Wenn Sie wirklich eine Funktion, die ich denke, brauchen Sie ein, um festzustellen, ob eine Zahl ungerade ist:

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 

Und dann können Sie diese stattdessen in der Abfrage verwenden:

SELECT * FROM account where is_odd(amt);

+0

Ich muss eine Funktion schreiben, nicht nur eine Abfrage. –

+0

Warum muss es eine Funktion sein? – wbrugato

+0

@wbrugato, sollte das nicht MOD (Betrag, .02) sein, um die Nachkommastellen zu berücksichtigen? – dazedandconfused

0

Diese Abfrage Rückkehr ungerade balance

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