【问题标题】:How can I use CASE function to Remove HIGHLIGHTED NULL to 0如何使用 CASE 函数将 HIGHLIGHTED NULL 删除为 0
【发布时间】:2019-11-26 14:02:55
【问题描述】:
SELECT E.employee_id AS "EMPLOYEE ID", E.first_name AS "FIRST NAME", E.salary AS "SALARY",
       L.state_province AS "STATE", L.city AS "CITY",
       D.department_name AS "DEPARTMENT NAME"

FROM employees E Inner JOIN departments D
ON E.department_id = D.department_id
INNER JOIN locations L
ON D.location_id = L.location_id 

【问题讨论】:

  • COALESCE( column, 'default value') 用于将 NULL 替换为默认值
  • 我要使用 CASE FUNCTION
  • 为什么要用'0' 替换州名?
  • 我只是在练习,所以……不关注被替换的价值,而是关注如何替换它
  • 请在问题中包含内容,而不是内容图片。

标签: mysql sql join inner-join


【解决方案1】:

只需替换:

L.state_province AS "STATE"

作者:

case when L.state_province is null then '0' else L.state_province end AS "STATE"

【讨论】:

【解决方案2】:

如果你真的想要用例,那么你可以这样做:

SELECT 
     E.employee_id AS "EMPLOYEE ID", 
     E.first_name AS "FIRST NAME", 
     E.salary AS "SALARY",
     (CASE WHEN  L.state_province IS NULL THEN 0 ELSE  L.state_province END) AS "STATE", 
     L.city AS "CITY",
     D.department_name AS "DEPARTMENT NAME"
FROM employees E
Inner JOIN departments D ON E.department_id = D.department_id
INNER JOIN locations L ON D.location_id = L.location_id 

【讨论】:

    【解决方案3】:

    在您的 SELECT 语句中,您可以使用 ISNULL() 函数包装您的列。

    示例如下:-

    SELECT E.employee_id AS "EMPLOYEE ID", E.first_name AS "FIRST NAME", E.salary AS "SALARY",
       ISNULL(L.state_province,'0') AS "STATE", L.city AS "CITY",
       D.department_name AS "DEPARTMENT NAME"
    

    您也可以使用 CASE 语句,例如:

    SELECT E.employee_id AS "EMPLOYEE ID", E.first_name AS "FIRST NAME", E.salary AS "SALARY",
       CASE WHEN L.state_province IS NULL then '0' ELSE L.state_province END AS "STATE", L.city AS "CITY",
       D.department_name AS "DEPARTMENT NAME"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-21
      • 2018-03-28
      • 1970-01-01
      • 2016-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多