You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询如何保留无销售员订单逗号标识,将销售员ID替换为全名

修改后可直接使用的查询语句

假设存储员工信息的表名为employees,员工ID字段为employee_id,姓名字段为first_name(名)、last_name(姓),如果实际表名、字段名不同可自行替换对应部分:

SELECT 
  NVL(e.first_name || ' ' || e.last_name, ',') AS "Emp Name",
  RPAD(to_char(SUM(i.quantity * i.unit_price),'$999,999,999.99'), 16, ' ') AS "Total Sale"
FROM orders o 
INNER JOIN order_items i ON i.order_id = o.order_id
LEFT JOIN employees e ON o.salesman_id = e.employee_id
WHERE 
  -- 保留无销售员的订单,排除姓氏以y结尾的销售员,不使用LIKE运算符
  e.employee_id IS NULL 
  OR LOWER(SUBSTR(e.last_name, -1)) != 'y'
GROUP BY o.salesman_id, e.first_name, e.last_name
HAVING SUM(i.quantity * i.unit_price) > 4000000.00
ORDER BY 2 DESC;

核心改动说明

  • 新增LEFT JOIN employees左连接逻辑:确保没有对应销售员的订单不会被过滤,可继续保留逗号标识
  • 替换销售员展示逻辑:匹配到销售员时直接输出全名,未匹配到时输出逗号,和原有标识规则完全一致
  • 实现禁用LIKE的过滤规则:用SUBSTR取姓氏最后一位判断是否为y,同时额外保留销售员ID为空的记录不被过滤
  • 调整分组规则:新增员工姓名字段到分组条件中,符合SQL语法要求

内容的提问来源于stack exchange,提问作者oharujyu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 07:27:05