zoukankan      html  css  js  c++  java
  • mysql case 列名 when 和 case when的区别

    最近写了一个sql,才发现有些情况不能用case 列名 when

    (case ts.score when ts.score BETWEEN 9 and 10 then ''  when ts.score BETWEEN 8 and 8.9 then '' when ts.score BETWEEN 7 and 7.9 then '' else ''  END
            )  score_type,

    我发现这样写查出来的结果一直走的是else的条件

    后来百度了一下  发现这两种写法是有一定的差别的

    case具有两种格式。简单case函数和case搜索函数。

    --简单case函数
    case sex
      when '1' then ''
      when '2' then '女’
      else '其他' end
    --case搜索函数
    case when sex = '1' then ''
         when sex = '2' then ''
         else '其他' end 

    这两种方式,可以实现相同的功能。简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判定式。

    还有一个需要注重的问题,case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略。

    后来我用搜索函数这种写法写

    CASE 
        WHEN score BETWEEN 9 
        AND 10 THEN
        '' 
        WHEN score BETWEEN 8 
        AND 8.9 THEN
        '' 
        WHEN score BETWEEN 7 
        AND 7.9 THEN
        '' ELSE '' 
    END 

  • 相关阅读:
    大三寒假学习进度(3)
    大三寒假学习进度(2)
    大三寒假学习进度(1)
    Tensorflow深度学习(二)
    Tensorflow深度学习(一)
    了解使用Pyppeteer
    为什么我还可以继续使用python自动填问卷星?
    周总结(十四)
    docker常用命令总结
    周总结(十三)
  • 原文地址:https://www.cnblogs.com/NCL--/p/10978280.html
Copyright © 2011-2022 走看看