编写一个 PL/SQL 代码来计算数字(1-10)的 2 的幂?
Posted
技术标签:
【中文标题】编写一个 PL/SQL 代码来计算数字(1-10)的 2 的幂?【英文标题】:Write a PL/SQL code to calculate the power of 2 for numbers (1-10)? 【发布时间】:2020-08-03 12:00:08 【问题描述】:如何编写 PL/SQL 代码来计算数字 (1-10) 的 2 的幂
【问题讨论】:
欢迎来到 SO!请先阅读how to ask a good question。 似乎是一些锻炼的问题。 【参考方案1】:使用power SQL 函数
select rownum rn, power(2, rownum) pwr
from dual
connect by level <= 10;
RN PWR
---------- ----------
1 2
2 4
3 8
4 16
5 32
6 64
7 128
8 256
9 512
10 1024
10 rows selected
【讨论】:
“我想要一个 pl/sql 代码” 所以不是免费的代码编写服务。向我们展示您的最大努力,然后其他人可以指出您做错了什么。【参考方案2】:PL/SQL 它是一个使用循环来计算结果的函数。
SQL> create or replace function f_power (n in number)
2 return number
3 is
4 retval number := 2;
5 begin
6 for i in 2 .. n loop
7 retval := retval * 2;
8 end loop;
9 return retval;
10 end;
11 /
Function created.
SQL> select level as n, f_power(level) result
2 from dual
3 connect by level <= 10;
N RESULT
---------- ----------
1 2
2 4
3 8
4 16
5 32
6 64
7 128
8 256
9 512
10 1024
10 rows selected.
SQL>
【讨论】:
【参考方案3】:递归 CTE 可以做到这一点。
with pows( n, pown) as
( select 1, 2 from dual
union all
select n+1, pown*2
from pows
where n<&N
)
select * from pows;
【讨论】:
以上是关于编写一个 PL/SQL 代码来计算数字(1-10)的 2 的幂?的主要内容,如果未能解决你的问题,请参考以下文章
如何编写一个 PL/SQL 程序来打印出看起来像 xml 格式的字符串