ORDER BY Oracle中的连接名称?

时间:2011-06-22 14:02:59

标签: sql oracle sql-order-by concatenation

我有一个名为USERS的表,我从中获取了员工的名字和姓氏,并将其打印为一个名称。如何在此数据上正确使用ORDER BY?

这就是我所拥有的:

SELECT l.OFFICE_NAME, (us.LAST_NAME || ' , ' || us.FIRST_NAME) AS "Employee Name"
FROM LOCAL_OFFICE l, USERS us
WHERE l.LOCAL_OFFICE_ID = us.LOCAL_OFFICE_ID
ORDER BY  l.OFFICE_NAME  --what do I place here?--

我将通过JOIN而不是更昂贵的FROM来完成此操作,但如何按名称按字母顺序排序?

4 个答案:

答案 0 :(得分:8)

你可以说:

ORDER BY office_name, "Employee Name"

这适用于11G,但可能不适用于旧版本的Oracle。

答案 1 :(得分:6)

ORDER BY l.OFFICE_NAME, (us.LAST_NAME || ' , ' || us.FIRST_NAME) 

答案 2 :(得分:5)

由于您的连接并没有真正添加任何新内容,为什么不只是

ORDER BY l.OFFICE_NAME, us.LAST_NAME, us.FIRST_NAME

编辑:如果USERS.LAST_NAME和/或USERS.FIRST_NAME上有索引,这将比通过连接结果排序更快

答案 3 :(得分:4)

您可以使用:

ORDER BY 1,2

这不是很好的做法,但它有效。