在输出后在 plsql 中写一个块
write a block in plsql following output
我想要一些打印 1 到 100 的 PL/SQL 代码。此外,对于可被 3 整除的数字打印 'wel'
,对于可被 5 整除的数字打印 'come'
以及对于可被 3 整除的数字和 5 然后打印 'welcome'
。像这样输出
1
2
wel
4
come
7
.
.
14
welcome
这是我写的一些代码:
begin
for i in 1..100 loop
dbms_output.put_line(i);
if mod(i,3)=0 then
dbms_output.put_line('wel');
elsif mod(i,5)=0 then
dbms_output.put_line('come');
elsif mod(i,3)=0 and mod(i,5)=0 then
dbms_output.put_line('welcome');
end if;
end loop;
end;
/
看起来像是 Fizzbuzz interview question 的变体。您可以使用单个查询:
SELECT nvl(decode(mod(rownum,3),0,'wel')||decode(mod(rownum,5),0,'come'),rownum)
as Example
FROM xmltable('1 to 100');
编辑
PL/SQL块:
BEGIN
FOR i IN (
SELECT nvl(decode(mod(rownum,3),0,'wel')||decode(mod(rownum,5),0,'come'),rownum)
as Example
FROM xmltable('1 to 100')) LOOP
DBMS_OUTPUT.PUT_LINE(i.Example);
END LOOP;
END;
编辑 2
正如您发布的代码,修复它非常容易:
begin
for i in 1..100 loop
if mod(i,3)=0 and mod(i,5)=0 then
dbms_output.put_line('welcome');
elsif mod(i,5)=0 then
dbms_output.put_line('come');
elsif mod(i,3)=0 then
dbms_output.put_line('wel');
else
dbms_output.put_line(i);
end if;
end loop;
end;
//
我想要一些打印 1 到 100 的 PL/SQL 代码。此外,对于可被 3 整除的数字打印 'wel'
,对于可被 5 整除的数字打印 'come'
以及对于可被 3 整除的数字和 5 然后打印 'welcome'
。像这样输出
1
2
wel
4
come
7
.
.
14
welcome
这是我写的一些代码:
begin
for i in 1..100 loop
dbms_output.put_line(i);
if mod(i,3)=0 then
dbms_output.put_line('wel');
elsif mod(i,5)=0 then
dbms_output.put_line('come');
elsif mod(i,3)=0 and mod(i,5)=0 then
dbms_output.put_line('welcome');
end if;
end loop;
end;
/
看起来像是 Fizzbuzz interview question 的变体。您可以使用单个查询:
SELECT nvl(decode(mod(rownum,3),0,'wel')||decode(mod(rownum,5),0,'come'),rownum)
as Example
FROM xmltable('1 to 100');
编辑
PL/SQL块:
BEGIN
FOR i IN (
SELECT nvl(decode(mod(rownum,3),0,'wel')||decode(mod(rownum,5),0,'come'),rownum)
as Example
FROM xmltable('1 to 100')) LOOP
DBMS_OUTPUT.PUT_LINE(i.Example);
END LOOP;
END;
编辑 2
正如您发布的代码,修复它非常容易:
begin
for i in 1..100 loop
if mod(i,3)=0 and mod(i,5)=0 then
dbms_output.put_line('welcome');
elsif mod(i,5)=0 then
dbms_output.put_line('come');
elsif mod(i,3)=0 then
dbms_output.put_line('wel');
else
dbms_output.put_line(i);
end if;
end loop;
end;
//