DELETE MYTEST;
INSERT INTO MYTEST SELECT '2007-01' FROM DUAL
UNION SELECT '2007-02' FROM DUAL
UNION SELECT '2007-03' FROM DUAL
UNION SELECT '2007-05' FROM DUAL
UNION SELECT '2006-12' FROM DUAL;
SELECT * FROM (
SELECT YEARMONTH FROM MYTEST
WHERE YEARMONTH <= '2007-03' //可以换成传递的参数
ORDER BY YEARMONTH DESC
)
WHERE ROWNUM <= 3;
SQL> INSERT INTO MYTEST SELECT '2007-01' FROM DUAL
2 UNION SELECT '2007-02' FROM DUAL
3 UNION SELECT '2007-03' FROM DUAL
4 UNION SELECT '2007-05' FROM DUAL;
4 rows inserted
SQL> SELECT * FROM MYTEST
2 WHERE YEARMONTH=TO_CHAR(ADD_MONTHS(TO_DATE('2007-03','YYYY-MM'),-1),'yyyy-mm')
3 OR YEARMONTH=TO_CHAR(ADD_MONTHS(TO_DATE('2007-03','YYYY-MM'),-2),'yyyy-mm')
4 OR YEARMONTH='2007-03';
如果yearMonth 是字符型的話就
WHERE yearMonth IN (TO_CHAR(ADD_MONTHS(to_date('200703','yyyy-mm'),-1),'YYYY-MM'),ADD_MONTHS(to_date('200703','yyyy-mm'),-2),'YYYY-MM'),'2007-03')