【发布时间】:2019-05-21 13:38:41
【问题描述】:
所以我得到了一张图片,你必须通过 SQL 从你的表中创建一个输出。我设法用分配的经理姓名显示员工姓名,但姓名的顺序与问题不匹配。
我在想 ORDER BY WHERE 可以用吗? 您认为这会有所帮助吗,因为我认为我的暗示可能不正确 https://sqlandme.com/2013/11/18/sql-server-custom-sorting-in-order-by-clause/
必填:
SELECT CONCAT(CONCAT(CONCAT(CONCAT(m.TITLEOFCOURTESY,' '),m.FIRSTNAME),' '),m.LASTNAME) AS "Manager Name",CONCAT(CONCAT(CONCAT(CONCAT(a.TITLEOFCOURTESY,' '),a.FIRSTNAME),' '),a.LASTNAME) AS "Employee Name"
FROM EMPLOYEES a
INNER JOIN EMPLOYEES m
ON a.REPORTSTO = m.EMPLOYEEID;
我的输出:
STEVEN 应该是第三,但他实际上是第二。
【问题讨论】:
-
为什么?订单的逻辑是什么?
-
如果没有看到
EMPLOYEES表中的数据,就无法猜测合适的排序方式是什么 -
员工不按
titleofcourtesy, firstname, lastname的任何排列排序。所以排序顺序必须从 EMPLOYEES 的一些其他属性派生而来。薪水?雇用日期?唉,我们不能告诉你,因为我们看不到你的模式。你必须自己弄清楚。 -
所需的顺序对我来说没有任何意义。
-
您确定“必须如下所示”指令实际上包括排序 - 它不只是指定名称的格式吗? (当然,您通常应该对输出进行排序,但您必须知道要使用的标准。)
标签: sql oracle sql-order-by