我的下表有一列
Z_NUM
--------
34545
345
656
32
42
...
我想构建以下依赖
i | SUM(Z_NUM)
----------------
2 | 40934
3 | 51244
4 | 54793
...
基于查询
SELECT SUM(z_num) FROM table WHERE z_num < i;
变量i
是一个参数,应该加1。
如何在ORACLE中实现此查询?
如果我在MYSQL中这样做,我会写类似
的东西SELECT
@n := @n + 1 n,
SUM(z_num)
FROM table, (SELECT @n := 1) m
WHERE z_num < n;
但不幸的是它在Oracle PL / SQL中不起作用。
答案 0 :(得分:0)
使用两个子查询:
connect by
来生成从2到N的数字i
i
SELECT i,
( SELECT coalesce( sum(z_num), 0 )
FROM table1 WHERE z_num < i
) as myresult
FROM (
SELECT level+1 As i FROM dual
CONNECT BY LEVEL <= ( SELECT max(Z_NUM) FROM table1 )-1
)
ORDER BY i
答案 1 :(得分:0)
使用ROWNUM,
<?php
$mystring = "90001 90002";
$mystring = str_replace(" "," ",$mystring);
echo $mystring;
?>
OR
SELECT SUM(z_num)
FROM (SELECT z_num, rownum rown
FROM table)
WHERE z_num < rown;
答案 2 :(得分:0)
试试这个:
public void DeleteCell(ExcelWorksheet worksheet, string cellAddress)
{
if (worksheet.Cells[cellAddress].Merge == true)
{
var value = worksheet.Cells[cellAddress].Value;
string range = GetMergedRange(worksheet, cellAddress); //get range of merged cells
worksheet.Cells[range].Merge = false; //unmerge range
worksheet.Cells[cellAddress].Clear(); //clear value
//merge the cells you want again.
//fill the value in cells again
}
}
结果:
SELECT i,
( SELECT coalesce( sum(z_num), 0 )
FROM Table_NUM WHERE ROWNUM <= i
) as SUM(Z_NUM)
FROM (
SELECT level+1 As i FROM dual
CONNECT BY LEVEL <= ( SELECT Max(ROWNUM) FROM Table_NUM )-1
)
ORDER BY i;
它可能对你有帮助。