mysql-条件判断语句case..when..then

水深无声 2022-04-23 01:54 361阅读 0赞

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

  1. create table reader(
  2. card_id char(18) primary key,
  3. name varchar(20) not null,
  4. sex enum('男','女','保密') default'保密',
  5. age tinyint not null,
  6. phone_number char(11) not null,
  7. balance decimal(6,2) default 200
  8. );
  9. insert into reader values('330100199201231104','小明','男',29,'15787223423',70);
  10. insert into reader values('330100199201231105','小红','女',21,'15787223424',230);
  11. insert into reader values('330100199201231106','王迷','男',19,'15787223425',530);
  12. insert into reader values('330100199201231107','李思','女',24,'15787223426',230);
  13. insert into reader values('330100199201231108','小王','女',32,'15787223427',120);
  14. insert into reader values('330100199201231109','王霞','女',26,'15787223428',300);

在这里插入图片描述
sql脚本:

  1. delimiter//
  2. create function mylevel(myid char(18))
  3. returns varchar(20)
  4. begin
  5. declare mybalance decimal(6,2);
  6. declare level varchar(20);
  7. select balance into mybalance from reader where card_id=myid;
  8. case
  9. when mybalance>=500 then set level='黄金会员';
  10. when mybalance>=300 then set level='高级会员';
  11. when mybalance>=100 then set level='普通会员';
  12. else set level='不是会员,不能借书';
  13. end case;
  14. return level;
  15. end//
  16. delimiter;
  17. select name,balance,mylevel(card_id) level from reader;

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

发表评论

表情:
评论列表 (有 0 条评论,361人围观)

还没有评论,来说两句吧...

相关阅读

    相关 js条件判断语句switch

    语法 1、switch后面写的是表达式 2、case后面的返回值代表的是表达式的返回值,当表达式的返回值与任意一个case后面的值相同,就会执行该case后面的代码段

    相关 mysql-if条件判断语句

    需求: 查询读者信息表,根据读者的余额判断读者的会员等级。 1、根据身份证号查询读者的余额 2、如果用户余额不小于500,则用户为黄金会员;如果用的余额不小于300

    相关 Java条件语句之if判断嵌套语句

    if翻译过来是如果的意思,所以在我们的Java语言中,if的语法用来表示如果、就会,否则、就会。即,定义一个条件,满足该条件会输出什么,不满足又会输出什么。下面我们在测试类中来