我有一个复杂的选择,在case语句内的case语句中有很多内部case,以尝试找出正确的日期,但是毕竟已经弄清楚了,它只需要使用每月的第一天。
例如,我可能会得到LIMIT
,但我希望最终结果是SELECT * FROM orderbook2
LIMIT <number_from_rowcount>, 1
。
是否可以按照下面的步骤做一些事情(显然不起作用,但是正在寻找建议)。
LIMIT
在这种情况下,sysdate将替换为大量的case语句和计算列表。我唯一看到的方法是做
08/10/2018
答案 0 :(得分:0)
以下是一些表达式,它们返回给定日期的月份的第一天:
简单地:
SELECT TRUNC(sysdate, 'MM') FROM DUAL;
或者:
SELECT TRUNC(sysdate) - TO_NUMBER(TO_CHAR(sysdate,'DD')) + 1 FROM dual
或使用LAST_DAY
:
SELECT ADD_MONTHS((LAST_DAY(sysdate)+1),-1) FROM DUAL;