oracle PL/SQL中,请输出100-999之间的所有水仙花数。

zhutoupom 2019-03-13 01:20:28
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没有输出啊。谢谢,正确的应该怎么写
...全文
909 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
AHUA1001 2019-03-22
  • 打赏
  • 举报
回复
这个条件不满足
if (a*a*a + b*b*b + c*c*c) = i
nayi_224 2019-03-13
  • 打赏
  • 举报
回复
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;
卖水果的net 2019-03-13
  • 打赏
  • 举报
回复

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

17,078

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧