oracle sql分组排序

来源:百度知道 编辑:UC知道 时间:2024/06/05 06:04:25
SELECT distinct
A.ID,A.EMP_NUM,
A.EMP_EN_NAME,
A.EMP_CN_NAME,
D.POSITION_NAME,
E.WRKEXP_TOTAL,
E.WRKEXP_IN_DEX,
E.OUTSIDE_OF_CHN,
E.PASSPORT_STATE,
E.PASSPORT_APPDT,
E.PASSPORT_COLDT,
E.PASSPORT_EXPDT,
E.VISA_STATE,
E.VISA_APPDT,
E.VISA_COLLECT_DT,
E.VISA_VALID_ST,
E.VISA_VALID_END,
E.YES_OF_VISA,
E.VISA_TYPE,E.PROPOSE_ST,
E.PRPPOSE_RTN,
E.CEP_ST,
E.CEP_END,
E.REMARKS
FROM TB_HRMS_EMP_BASEINFO A,
TB_HRMS_SYS_DEPARTMENT B,
TB_HRMS_EMP_POSITION C,
TB_HRMS_SYS_POSITION D,
TB_HRMS_EMP_PASSPORTANDVISA E
WHERE E.EMP_ID=A.ID
AND A.ID= C.EMP_ID
AND C.DEP_ID=B.ID
AND C.POS_ID=D.ID
order by D.POSITION_NAME,A.EMP_EN_NAME

这句只是按照D.POSITION_NAME排序了,而A.EMP_EN_NAME没有在D.POSITION_NAME排序的基础上再排序
我想先按D.POSITION_NAME进行分组,然后每一组按照A.EMP_EN_NAME进行升序排列

请帮我解决下,谢谢!
SELEC

语句没看出来什么问题,查询出来的结果会有错么???

可以这样写:
SELECT …… ,RANK()OVER(PARTITION BY D.POSITION_NAME ORDER BY A.EMP_EN_NAME DESC)
FROM ……
WHERE ……

去掉最后的order by D.POSITION_NAME,A.EMP_EN_NAME
一句
这是ORACLE8.0以后以才能用的 分析函数 如果想了解更多你可以去查下具体怎么用我就不解释了,了解功能的最好办法就是自己去实际应用!
呵呵
祝好运!

ORDER BY 就是了!会没有排序吗?
不打可能吧1
看你的 语句没有问题哈