1、创建函数
选择如图所示的两种方式。
1.点击上方【函数】——>点击下方【新建函数】
2.右键【函数】——>点击右侧【新建函数】
选择函数
随便起个名字(如aa),类型选择aa的类型。因为下面的案例和钱有关,所以此处选择decimal类型。
点击完成后,自动生成如下代码
CREATE DEFINER = CURRENT_USER FUNCTION `NewProc`(`aa` decimal)
RETURNS integer(10)
BEGIN
#Routine body goes here...
RETURN 0;
END;
2、编写以下功能
CREATE DEFINER = CURRENT_USER FUNCTION `f1`(`aa` decimal)
RETURNS integer(10)
BEGIN
#声明两个变量
DECLARE temp DECIMAL;
declare tax DECIMAL;
#将传入的值减去3500赋值给temp
set temp = aa - 3500;
CASE
WHEN temp <= 0 THEN
set tax = 0;
WHEN temp > 0 and temp <= 1500 THEN
set tax = temp*0.03-0;
WHEN temp > 1500 and temp <= 4500 THEN
set tax = temp*0.10-105;
WHEN temp > 4500 and temp <= 9000 THEN
set tax = temp*0.20-555;
WHEN temp > 9000 and temp <= 35000 THEN
set tax = temp*0.25-1005;
WHEN temp > 35000 and temp <= 55000 THEN
set tax = temp*0.30-2755;
WHEN temp > 55000 and temp <= 80000 THEN
set tax = temp*0.35-5505;
ELSE
set tax = temp*0.45-13505;
END CASE;
RETURN tax;
END;
点击保存时出现以下问题
可以通过下面两种方式解决。
1、在 MySQL 数据库中执行以下语句,临时生效,重启后失效
set global log_bin_trust_function_creators=TRUE;
2、在配置文件 my.ini 的 [mysqld] 配置,永久生效
log_bin_trust_function_creators=1
点击运行,输入4000,点确定,返回计算后的结果。
(4000-3500)*0.03 = 15
sql语句查询
SELECT f1(4000)