我可以查询给定数值中所有数字的总和吗?
输入值示例:
EMPNO
-----
7369
Run Code Online (Sandbox Code Playgroud)
我希望得到这个结果:
7+3+6+9 = 25
Run Code Online (Sandbox Code Playgroud)
我考虑过这个解决方案,但我觉得它没有效率:
SELECT SUBSTR('12345',1,1) + SUBSTR('12345',2,1)
FROM DUAL;
Run Code Online (Sandbox Code Playgroud)
小智 3
这是解决方案:
SELECT id,sum(SUBSTR(empno, LEVEL, 1 )) sums
FROM (select 1 as id, 7369 as empno from DUAL)
CONNECT BY LEVEL <= LENGTH(empno)
group by id
Run Code Online (Sandbox Code Playgroud)
SELECT sum(column_value)
FROM (
SELECT 7369 val,
ROWNUM AS id
FROM dual
) t
CROSS JOIN
TABLE(
CAST(
MULTISET(
SELECT SUBSTR( t.val, LEVEL, 1 )
FROM DUAL
CONNECT BY LEVEL <= LENGTH( t.val )
)
AS SYS.ODCIVARCHAR2LIST
)
) c
Run Code Online (Sandbox Code Playgroud)
输出:
SUM(COLUMN_VALUE)
25
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
126 次 |
| 最近记录: |