SQL之IF表达式

MySQL的IF既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用:

IF表达式语法
MySQL 中的 IF 函数可以根据指定的条件返回不同的值。

IF(condition, value_if_true, value_if_false)

其中, condition 是要测试的条件;如果 condition 为真,则返回 value_if_true ;否则返回 value_if_false 。

IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。

示例

查找出售价为 50 的书,如果书名是“java ”,就标注为“已售完”

select *,if(book_name='java','已卖完','有货') as product_status from book where price =50;

假设我们有一个 scores 表,其中包含学生的名字和成绩。上面的查询会根据学生的成绩,返回一个新的 result 列,如果成绩大于等于 60 分,则为 "Pass",否则为 "Fail"。

SELECT name, IF(score >= 60, 'Pass', 'Fail') AS result
FROM scores;

IF 函数的嵌套使用也是非常常见的。例如:

SELECT name, IF(score >= 90, 'A', IF(score >= 80, 'B', IF(score >= 70, 'C', 'D'))) AS grade
FROM scores;

上面的查询根据学生的成绩,返回一个新的 grade 列,如果成绩大于等于 90 分,则为 "A",否则继续比较成绩是否大于等于 80 分,依此类推,直到找到对应的等级为止。

posted @   捷后愚生  阅读(254)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示