select sum(case when num10 then 0 else num1 end)+sum(case when num20 then 0 else num2 end) as 負(fù)值總和 from 表名
內(nèi)黃網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)公司于2013年開始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
1,1,-3 若是求和為 -1,就使用 sum()
1,1,-3 若是求和為 5,就使用 sum(abs())
select * from A where to_char(日期字段,'yyyymm')=to_char(add_months(sysdate,-1),'yyyymm')
這樣試驗(yàn)一下,表名和字段名你替換一下,也就是把A和日期字段這倆地方換一下
也不用創(chuàng)建啊,有個(gè)函數(shù)叫sign
用法:
select sign(數(shù)值) from dual
大于0返回1,等于0返回0,小于0返回-1
你說的那個(gè)
select * from count where sign(num1)=1
得出來的就是為正數(shù)的了
---補(bǔ)充--
create or replace FUNCTION NUM(v_num number)
return int is
Result int;
begin
if(v_num 0) then
Result := -1;
end if;
if(v_num = 0) then
Result := 0;
end if;
if(v_num 0) then
Result := 1;
end if;
return(Result);
end num;
用法與sign一致
如select num(100) from dual;