以下兩個版本有什麼區別?命令sql oracle
第一件作品,第二件不起作用。
1)
select sum(mont),to_char(datv,'MM')
from vente v
group by to_char(datv,'MM');
2)
select sum(mont),MONTH(datv)
from vente v
group by MONTH(datv);
以下兩個版本有什麼區別?命令sql oracle
第一件作品,第二件不起作用。
1)
select sum(mont),to_char(datv,'MM')
from vente v
group by to_char(datv,'MM');
2)
select sum(mont),MONTH(datv)
from vente v
group by MONTH(datv);
正如我在評論說,月是不是一個有效的Oracle功能。這並不阻止你自己定義它:
CREATE OR REPLACE FUNCTION MONTH (p_date IN DATE) return number
as
v_month number(2);
begin
SELECT TO_NUMBER(TO_CHAR(p_date,'MM')) INTO v_month FROM DUAL;
return v_month;
end;
/
因此,你的第二個查詢應該現在工作。
Oracle中沒有month()
函數。如果你想在一個月爲數,使用extract()
select sum(mont), extract(month from datv)
from vente
group by extract(month from datv);
有關詳細信息,請參閱手冊:
https://docs.oracle.com/cd/E11882_01/server.112/e41084/functions002.htm#SQLRF20033
謝謝你的工作 – user3093583
月份是不是一個有效的Oracle功能,除非你自己定義。 – tilley31
你是對的。我在答案中發佈的代碼有效,但它應該是TO_NUMBER ...我將進行編輯。 – tilley31