我的数据库有一个包含以下架构的表:
account(acno,amt)
acno int primary key
amt float(10,2)
我如何编写一个打印所有具有奇数余额的帐号的功能?
答案 0 :(得分: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);
答案 1 :(得分:0)
此查询返回奇数余额
SELECT acno, amt
FROM
account
WHERE (amt % 2) > 0;