我的數據庫具有以下架構表:SQL函數來打印選定值
account(acno,amt)
acno int primary key
amt float(10,2)
我怎麼會寫,打印有奇平衡所有賬號的功能?
我的數據庫具有以下架構表:SQL函數來打印選定值
account(acno,amt)
acno int primary key
amt float(10,2)
我怎麼會寫,打印有奇平衡所有賬號的功能?
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);
該查詢返回單數餘額
SELECT acno, amt
FROM
account
WHERE (amt % 2) > 0;
我需要編寫一個函數,而不僅僅是一個查詢。 –
爲什麼它必須是一個功能? – wbrugato
@wbrugato,不應該用MOD(amount,.02)來計算小數點後的數字嗎? – dazedandconfused