• mysql基础(4)


    内容一:字符串运算函数

    例子1 字符串替换—replace函数

    把查询id那一列 E开头数据 变成jw开头数据

    select id,REPLACE(id,“E”,“jw”) as “员工编号” from jw03_sale;

    例子2: 字符串合并 将两列数据可以合并显示

    select concat(“陈”,“冠希”)

    将员工编号+ 姓名+a商品销量一起显示

    select CONCAT(id,name,sales_a) from jw03_sale;

    select CONCAT_WS(“–”,id,name,sales_a) as “个人销量” from jw03_sale;

    内容二: 控制流函数(重点)

    需求: 根据不同的数据—显示出不同的结果

    根据考试分数 >=60 显示及格 否则 显示不及格

    解决方案:if() 函数 理解 ifNULL函数 NULLif函数 2.Case when 函数

    If函数

    格式1:===》支持嵌套

    if(条件,满足条件值,不满足条件的值)

    条件 假 0 NULL FASLE 其它 TRue

    if函数格式

    select if(70>=60,“及格”,“不及格”)

    例子 if嵌套 先判断是否及格 ,然后再判断是否优秀

    select if(85>=60,if(85>=80,“优秀”,“良好”),“不及格”)

    应用1: 给表格增加一列 显示学生是否及格

    select id,score,if(score>=60,“及格”,“不及格”) as score_result

    from jw04_stu8;

    应用2: 给表格增加一列 显示学生是否及格 小于80分==》良好,大于等于80 优秀

    select id,score,if(score>=60,if(score<80,“良好”,“优秀”),“不及格”) as score_result

    from jw04_stu8;

    if函数 外层到内层进行解析即可

    ifNULL函数 NULLif函数

    ifNULL(参数1,参数2)

    含义 如果参数1 不为空则返回参数1 否则 则返回参数2

    NULLif(参数1,参数2)

    含义:如果 参数1等于参数2 返回NULL 否则返回 参数1

    例子 查询worker表

    根据 岗位类型 type=“A” 数据分析岗位

    其它类型 非数据分析岗位

    增加1列 没有工资的 工资显示为0

    增加1列 没有工资的 工资显示为NULL

    select name,

    if(type=‘A’,“数据分析岗”,“非数据岗”) as jwtype,

    IFNULL(salary,0) as ‘无工资为0’,

    NULLIF(salary,null) as ‘无工资为Null’

    from worker;

    需求: 在sql if 不建议嵌套太深(不要3层)==》慢查询

    解决: 使用 case …when 解决

    格式一:(简单写法)

    Case 字段名字

    When 条件1 then 满足条件1结果

    When 条件2 then 满足条件2结果

    When 条件3 then 满足条件3结果

    Else 不满足返回默认值

    End

    注意: 条件具体的值,只适合相等条件判断,不能进行比较运算!!!

    格式二:(搜索写法 解决格式1 问题 可以做比较运算)

    Case (啥也没有)

    When 条件1 then 满足条件1结果

    When 条件2 then 满足条件2结果

    When 条件3 then 满足条件3结果

    Else 不满足返回默认值

    End

    说明: 这里的条件可以进行比较运算的

    例子 1.增加一列 根据班级 结果 显示不同班级别名(幼儿园)

    select id,class ,

    (

    case class

    when “一班” then “向日葵班”

    when “二班” then “玫瑰班”

    when “三班” then “小鸡班”

    else “老鹰班” end

    ) as “班级别名”

    from jw04_stu8;

    例子2.小于60分 “不及格” 小于80分 良好 其它情况优秀

    select

    id,score,

    (

    case

    when score <60 then “不及格”

    when score <80 then “良好”

    else “优秀”

    end

    ) “分数等级”

    from jw04_stu8;

    补充说明 条件between and 关键字支持的

    小结: if和case

    If 简单 不建议嵌套 建议推荐使用case

  • 相关阅读:
    C++面向对象程序设计题
    【虚拟语气练习题】对现在的虚拟
    不要小看 WebSocket!长连接、有状态、双向、全双工都是王炸技能
    HJ61 放苹果
    QFileDevice 类【官翻】
    鸿蒙轻内核M核源码分析系列七 动态内存Dynamic Memory
    【Java八股文总结】之Linux常用指令
    【Java后端】美团提前批一面和二面面经!
    自定义注解实现token拦截放行
    docker安装nginx代理nacos2.1.2版本集群
  • 原文地址:https://blog.csdn.net/m0_54853503/article/details/126036316