Meine Datenbank eine Tabelle mit folgendem Schema hat:SQL-Funktion drucken Werte ausgewählt
account(acno,amt)
acno int primary key
amt float(10,2)
Wie würde ich eine Funktion schreiben, die alle Zahlen Konto druckt ungerade-Gleichgewicht?
Meine Datenbank eine Tabelle mit folgendem Schema hat:SQL-Funktion drucken Werte ausgewählt
account(acno,amt)
acno int primary key
amt float(10,2)
Wie würde ich eine Funktion schreiben, die alle Zahlen Konto druckt ungerade-Gleichgewicht?
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);
Diese Abfrage Rückkehr ungerade balance
SELECT acno, amt
FROM
account
WHERE (amt % 2) > 0;
Ich muss eine Funktion schreiben, nicht nur eine Abfrage. –
Warum muss es eine Funktion sein? – wbrugato
@wbrugato, sollte das nicht MOD (Betrag, .02) sein, um die Nachkommastellen zu berücksichtigen? – dazedandconfused