SELECT DISTINCT NAME FROM (
select NAME,LEVEL L from t_workers T
where level<=3
CONNECT BY PRIOR NAME=NAME AND PRIOR TRUNC(workdate)=TRUNC(workdate)+1
)WHERE L=3 AND ROWNUM<=10

解决方案 »

  1.   


    SELECT DISTINCT NAME
      FROM (select NAME, LEVEL L
              from (SELECT * FROM t_workers WHERE NUMBERS > 50) T
             where level <= 3
            CONNECT BY PRIOR NAME = NAME
                   AND PRIOR TRUNC(workdate) = TRUNC(workdate) + 1)
     WHERE L = 3
       AND ROWNUM <= 10
      

  2.   

    SELECT DISTINCT NAME
    FROM (
        select NAME, LEVEL L from (
            SELECT * FROM t_workers
            WHERE NUMBERS > 50
            and to_char(workdate,'hh24:mi')betwwen '10:00'  and  '15:00'
        ) T
        where level <= 3
        CONNECT BY PRIOR NAME = NAME
        AND PRIOR TRUNC(workdate) = TRUNC(workdate) + 1)
    WHERE L = 3
    AND ROWNUM <= 10
    加个条件就完了
      

  3.   

    SELECT DISTINCT NAME
      FROM (select NAME, LEVEL L
              from (SELECT * FROM t_workers WHERE NUMBERS > 50 and to_char(sysdate,'HH24') > 10 and to_char(sysdate,'HH24') < 15) T
             where level <= 3
            CONNECT BY PRIOR NAME = NAME
                   AND PRIOR TRUNC(workdate) = TRUNC(workdate) + 1)
     WHERE L = 3
       AND ROWNUM <= 10