3,499
社区成员
发帖
与我相关
我的任务
分享 SELECT
(CASE
WHEN
(SELECT COUNT(*)
FROM EMPLOYEE
WHERE PERCOD = DB.PERID) > 1 THEN
(SELECT PERNAME
FROM EMPLOYEE
WHERE PERCOD = DB.PERID
AND ISDELETED = 0)
ELSE
(SELECT PERNAME
FROM EMPLOYEE
WHERE PERCOD = DB.PERID)
END) AS PERNAME
FROM BALANCE DB
LEFT JOIN BALANCE_BONUS DBB
ON DBB.ID = DB.BONUSID
WHERE DB.ISDELETED != 1
ORDER BY DB.ID; 


(select pername from
(SELECT pername, percod, isdeleted,
row_number() over(partition by percod order by isdeleted)as rr
FROM employee where
) where rr =1 and percod = db.emplyeeid)
AS EMPLYEENAME
这种优化方法可以节省查询的一半时间,但是时间还是有点长的
