oracle - 使用pl sql递归函数查找一串数字中所有数字的乘积
问题描述
使用递归函数找到由数字组成的字符串的所有数字的乘积,
所需的结构应如下所示。
myfunction('3535') --> 225
解决方案
您可以使用:
CREATE FUNCTION product_of_digits(
value IN VARCHAR2
) RETURN NUMBER DETERMINISTIC
IS
BEGIN
-- https://stackoverflow.com/a/68282548/1509264
-- License: CC BY-SA 4.0
IF value IS NULL THEN
RETURN NULL;
ELSE
RETURN TO_NUMBER(SUBSTR(value, 1, 1))
* COALESCE(product_of_digits(SUBSTR(value, 2)), 1);
END IF;
END;
/
然后:
BEGIN
DBMS_OUTPUT.PUT_LINE(product_of_digits('3535'));
END;
/
输出:
225
db<>在这里摆弄
推荐阅读
- server-side-includes - 服务器端包含:包含的内容中的图像链接中断
- vb.net - vb.net 中窗口窗体应用程序的会话
- raspberry-pi - 树莓派中的多处理功能
- javascript - Tinymce 与编辑器内的 textarea 内容
- python - 嵌套循环打印星(*)[python]
- python - 我的尝试计数器不会在我的 while 循环中减少?
- jsf - p:dataTable 在从 bean 中获取值时不显示
- sql - RESTORE HEADERONLY 出现此错误
- validation - Vuetify v-select 验证
- xrmtoolbox - XrmToolBox 工具选项卡空白