zoukankan      html  css  js  c++  java
  • SQL中的case when then

    SQL中没有三目运算符,可以使用case when then替代。

    SELECT
    	o.id,
    	-- 以下两句写法不一样,但作用一样
    	(case o.division_code when '-1' then '全国' else dv.name end) as division_name,
    	(case when o.division_code = '-1' then '全国' else dv.name end) as division_name2,
    FROM
    	tb_organization o
    	LEFT JOIN tb_division dv ON o.division_code = dv.`code`
    WHERE
    	o.id = 67
    

    根据o.division_code字段的值,如果为-1,那么显示全国
    如果不为-1,那么则查出对应的name.

    需要注意的一点:对Null的判断
    MySQL中使用case when then判断某字段是否为null,不能使用上面的第一种写法,应该使用第二种写法,且不是=, 而是is.

    如:

    (case when o.parent_id is null then '顶级节点' else o2.name end) as parent_organization_name
    

    更详细的,请见:SQL之case when then用法

  • 相关阅读:
    1.MySql安装
    struts文件上传、文件下载
    Java内存模型
    虚拟机类加载机制
    JAVA内存管理
    算法
    POI
    SSH项目(1)
    classpath路径和properties
    AngularJS路由实现单页面跳转
  • 原文地址:https://www.cnblogs.com/VitoYi/p/7718240.html
Copyright © 2011-2022 走看看