mysql-if条件判断语句

本文介绍如何在MySQL中使用IF条件判断语句查询读者的会员等级。通过查询读者信息表,根据读者余额判断其会员等级,如:余额不小于500为黄金会员,300为高级会员,100为普通会员,低于100则无会员资格。内容包括SQL查询脚本及其运行结果展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:
查询读者信息表,根据读者的余额判断读者的会员等级。
1、根据身份证号查询读者的余额
2、如果用户余额不小于500,则用户为黄金会员;如果用的余额不小于300,则用户为高级会员;如果用户余额不小于100,则为普通会员;如果用户余额小于100,则不是会员,不能借书。
需要显示用户的姓名,余额,等级。
读者信息表:

create table reader(
card_id char(18) primary key,
name varchar(20) not null,
sex enum('男','女','保密') default'保密',
age tinyint not null,
phone_number char(11) not null,
balance decimal(6,2) default 200
);

insert into reader values('330100199201231104','小明','男',29,'15787223423',70);
insert into reader values('330100199201231105','小红','女',21,'15787223424',230);
insert into reader values('330100199201231106','王迷','男',19,'15787223425',530);
insert into reader values('330100199201231107','李思','女',24,'15787223426',230);
insert into reader values('330100199201231108','小王','女',32,'15787223427',120);
insert into reader values('330100199201231109','王霞','女',26,'15787223428',300);

在这里插入图片描述

sql脚本:

delimiter//
create function mylevel(myid char(18))
returns varchar(20)
begin
declare mybalance decimal(6,2);
declare level varchar(30);
select balance into mybalance from reader where card_id=myid;
if mybalance>=500 then
	set level='黄金会员';
elseif mybalance>=300 then
	set level='高级会员';
elseif mybalance>=100 then
	set level='普通会员';
else
	set level='不是会员,不能借书';
end if;
return level;
end//
delimiter;

select name,balance,mylevel(card_id) level from reader;

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值