如何在casewhen中嵌套使用其他SQL函数

   2024-09-30 7140
核心提示:在 SQL 中,可以在 CASE WHEN 语句中嵌套使用其他 SQL 函数SELECT customer_id, first_name, last_name, CASE WHEN total_or

在 SQL 中,可以在 CASE WHEN 语句中嵌套使用其他 SQL 函数

SELECT customer_id,       first_name,       last_name,       CASE           WHEN total_orders >= 10 THEN 'Frequent Customer'           WHEN total_orders < 10 AND total_orders > 0 THEN 'Occasional Customer'           ELSE 'New Customer'       END AS customer_type,       CASE           WHEN DATEDIFF(CURRENT_DATE, last_order_date) <= 30 THEN 'Active'           WHEN DATEDIFF(CURRENT_DATE, last_order_date) > 30 AND DATEDIFF(CURRENT_DATE, last_order_date) <= 60 THEN 'Inactive'           ELSE 'Dormant'       END AS customer_activityFROM (    SELECT customer_id,           first_name,           last_name,           COUNT(*) AS total_orders,           MAX(order_date) AS last_order_date    FROM customers    LEFT JOIN orders ON customers.customer_id = orders.customer_id    GROUP BY customers.customer_id) AS subquery;

在这个示例中,我们首先创建了一个子查询(subquery),该子查询计算每个客户的订单总数和最后一次下单日期。然后,在主查询中,我们使用 CASE WHEN 语句为客户分配类型(如“频繁客户”,“偶尔客户”和“新客户”),并根据他们的活动状态(如“活跃”,“不活跃”和“休眠”)进行分类。

在这个例子中,我们使用了 COUNT(*)MAX(order_date) 函数来计算每个客户的订单总数和最后一次下单日期,然后在主查询中使用 CASE WHEN 语句对这些值进行条件判断。同样地,你可以在 CASE WHEN 语句中使用其他 SQL 函数来满足你的需求。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号