发布网友
共4个回答
热心网友
--PL/SQL块形式的:
DECLARE
i NUMBER;
nj NUMBER := 0;
no NUMBER := 0;
BEGIN
FOR i IN 1 .. 100 LOOP
IF MOD(i, 2) = 1 THEN
nj := nj + i;
ELSE
no := no + i;
END IF;
END LOOP;
dbms_output.put_line('奇数和:' || nj);
dbms_output.put_line('偶数和:' || no);
END;
/
--一句话的:
SELECT SUM(CASE
WHEN MOD(rownum, 2) = 1 THEN
rownum
END) 奇数和,
SUM(CASE
WHEN MOD(rownum, 2) = 0 THEN
rownum
END) 偶数和
FROM al
CONNECT BY rownum <= 100;
热心网友
DECLARE
V_SUM_ODD NUMBER(10) := 0;
V_SUM_EVEN NUMBER(10) := 0;
V_SUM NUMBER(10) := 0;
BEGIN
FOR I IN 1 .. 100 LOOP
IF MOD(I, 2) = 0 THEN
V_SUM_ODD := V_SUM_ODD + I;
ELSE
V_SUM_EVEN := V_SUM_EVEN + I;
END IF;
END LOOP;
V_SUM := V_SUM_ODD + V_SUM_EVEN;
DBMS_OUTPUT.PUT_LINE('奇数和:' || V_SUM_ODD);
DBMS_OUTPUT.PUT_LINE('偶数和:' || V_SUM_EVEN);
DBMS_OUTPUT.PUT_LINE('奇数和与偶数和:' || V_SUM);
END;
热心网友
这个一条select语句就行
用case,mod()取余结合
用 select rownum from al connect by rownum<101 生成1-100的记录序列
热心网友
declare
js number := 0;
os number := 0;
begin
for i in 1 .. 100 loop
if instr(i / 2, '.5', 1, 1) > 0 then
js := js + i;
else
os := os + i;
end if;
end loop;
dbms_output.put_line('奇数和为:'||js);
dbms_output.put_line('偶数和为:'||os);
end;