MySQL数据库中使用COALESCE函数、UNION和CASE的相关构造示例 1. COALESCE函数 COALESCE函数返回列表中第一个非NULL值。 示例:假设有一个订单表orders,包含字段order_id和amount,其中amount可能为NULL。 我们想要返回每个订单的金额,如果金额为NULL,则返回默认值0。 SELECT COALESCE(amount, 0) AS total_amount FROM orders; 2. UNION操作符 UNION操作符用于合并两个或多个SELECT语句的结果集,并去除重复的行。 示例:有两个表employees和contractors,都包含字段name和salary。 我们想要查看所有员工的姓名和薪水,使用UNION去除重复的姓名。 SELECT name, salary FROM employees UNION SELECT name, salary FROM contractors; 3. CASE语句 CASE语句用于根据条件返回不同的值。 示例:假设有一个成绩表grades,包含字段student_id和score。 我们想要根据分数返回不同的等级。 SELECT student_id, score, CASE WHEN score >= 90 THEN 'A' WHEN score >= 80 THEN 'B' WHEN score >= 70 THEN 'C' WHEN score >= 60 THEN 'D' ELSE 'F' END AS grade FROM grades; 结合COALESCE、UNION和CASE的示例 假设我们有两个表:sales 和 returns,都包含字段 product_id 和 amount。 sales 表记录销售金额,returns 表记录退货金额。 我们想要计算每个产品的净销售额(销售金额减去退货金额),如果退货金额为NULL,则默认为0。 SELECT product_id, COALESCE(SUM(s.amount), 0) COALESCE(SUM(r.amount), 0) AS net_sales FROM sales s LEFT JOIN returns r ON s.product_id = r.product_id GROUP BY product_id UNION ALL SELECT product_id, COALESCE(SUM(s.amount), 0) COALESCE(SUM(r.amount), 0) FROM sales s LEFT JOIN returns r ON s.product_id = r.product_id WHERE r.product_id IS NULL GROUP BY product_id;
SQL代码块展示了如何在MySQL中使用COALESCE函数、UNION操作符和CASE语句,并给出了具体的示例来解释这些构造的用法。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1153518.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复