ORDER BY Oracle中的连接名称?

nul*_*ull 4 sql oracle concatenation sql-order-by

我有一个名为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?--
Run Code Online (Sandbox Code Playgroud)

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

Ton*_*ews 8

你可以说:

ORDER BY office_name, "Employee Name"
Run Code Online (Sandbox Code Playgroud)

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


Gid*_*ise 6

ORDER BY l.OFFICE_NAME, (us.LAST_NAME || ' , ' || us.FIRST_NAME) 
Run Code Online (Sandbox Code Playgroud)


Phi*_*hil 5

由于你的连接并没有真正添加任何新东西,为什么不呢

ORDER BY l.OFFICE_NAME, us.LAST_NAME, us.FIRST_NAME
Run Code Online (Sandbox Code Playgroud)

编辑:如果有USERS.LAST_NAME和/或索引USERS.FIRST_NAME,这将比串联结果排序更快