我的要求很小。如何获得以下输出:
输入字符串为123456
我需要找到相反的位置,从2开始,即234567
。
现在将每个值乘以反向位置值并添加。
例如:plsql中的1*7+2*6+3*5+4*4+5*3+6*2
。
答案 0 :(得分:0)
查询1 :
WITH data ( value, total ) AS (
SELECT 123456, 0 FROM DUAL
UNION ALL
SELECT TO_NUMBER( SUBSTR( value, 2 ) ),
total + SUBSTR( value, 1, 1 ) * ( 1 + LENGTH( value ) )
FROM data
WHERE value IS NOT NULL
)
SELECT total FROM data WHERE value IS NULL
<强> SQL Fiddle 强>:
| TOTAL |
|-------|
| 77 |