WITH T AS (SELECT 'zhangsan' NM, TO_DATE('2014/03/02', 'yyyy/mm/dd') S_DT, TO_DATE('2014/03/05', 'yyyy/mm/dd') E_DT FROM DUAL UNION ALL SELECT 'zhangsan' NM, TO_DATE('2014/03/08', 'yyyy/mm/dd') S_DT, TO_DATE('2014/03/10', 'yyyy/mm/dd') E_DT FROM DUAL) SELECT T1.NM, S_DT + LEVEL - 1 FROM (SELECT T.*, ROWNUM RN FROM T) T1 CONNECT BY S_DT + LEVEL - 1 <= E_DT AND RN = PRIOR RN AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL;
WITH T AS
(SELECT 'zhangsan' NM,
TO_DATE('2014/03/02', 'yyyy/mm/dd') S_DT,
TO_DATE('2014/03/05', 'yyyy/mm/dd') E_DT
FROM DUAL
UNION ALL
SELECT 'zhangsan' NM,
TO_DATE('2014/03/08', 'yyyy/mm/dd') S_DT,
TO_DATE('2014/03/10', 'yyyy/mm/dd') E_DT
FROM DUAL)
SELECT T1.NM, S_DT + LEVEL - 1
FROM (SELECT T.*, ROWNUM RN FROM T) T1
CONNECT BY S_DT + LEVEL - 1 <= E_DT
AND RN = PRIOR RN
AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL;