declare
a number:=0;
b number:=0;
c number:=0;
begin
for i in 100..999 loop
 a:=mod(i,10);
 b:=mod(i/10,10);
 c:=mod(i,100);
 if (a*a*a + b*b*b + c*c*c) = i then
  dbms_output.put_line(i);
 end if;
 end loop;
 end;
 求助大神,为什么我写这段SQL没有输出啊。谢谢,正确的应该怎么写

解决方案 »

  1.   


        b := mod(trunc(i / 10), 10);
        c := trunc(i/ 100);
      

  2.   

    select t1.lv
      from (select level lv from dual connect by level <= 999) t1
     start with t1.lv >= 100
    connect by prior t1.lv = t1.lv
           and level <= length(t1.lv)
           and prior sys_guid() is not null
      group by t1.lv
     having t1.lv = sum(power(substr(t1.lv, level, 1), length(t1.lv)))
     order by t1.lv
    ;declare
    a number:=0;
    b number:=0;
    c number:=0;
    begin
    for i in 100..999 loop
     a:=mod(i,10);
     b:=mod(floor(i/10),10);
     c:=floor(i/100);
     if (a*a*a + b*b*b + c*c*c) = i then
      dbms_output.put_line(i);
     end if;
     end loop;
     end;
      

  3.   

    这个条件不满足
    if (a*a*a + b*b*b + c*c*c) = i