2

我有表员工

我将列检索为 select emp_name,emp_add from employee

while(iResultSet1.next())
            {
                List expRptColWise = new ArrayList();

                for(Integer i=1;i<=iResultSet1.getMetaData().getColumnCount();i++){


                        expRptColWise.add(iResultSet1.getString(i));

                }

                expRptRowWise.add(expRptColWise);

有了上面的片段,我得到

emp_name | emp_add |
A        | add1    |
B        | add2    |

我想在结果集中添加序列号列,以便我得到结果

emp_name | emp_add |Sr_No|
A        | add1    |1    |
B        | add2    |2    |

请指导我如何在结果集或集合对象中动态添加列,这里我使用了 ArrayList。

4

3 回答 3

11

使用以下查询

 select emp_name,emp_add, (ROW_NUMBER() OVER ( ORDER BY emp_name)) AS sr_no from employee
于 2012-09-04T06:44:32.343 回答
5

在 While 循环中设置一个计数器,每次递增并在输出中使用它:

int j = 0;
while(iResultSet1.next())
{
   j++;
   List expRptColWise = new ArrayList();
   for(Integer i=1;i<=iResultSet1.getMetaData().getColumnCount();i++)
   {
      expRptColWise.add(iResultSet1.getString(i));
   }
   expRptColWise.add(j);
   expRptRowWise.add(expRptColWise);
}
于 2012-09-04T06:48:58.383 回答
3

我更喜欢 DinupKandel 的回应,但这只是因为我们不应该把所有的鸡蛋放在同一个篮子里

int row = 0;
while(iResultSet1.next())
{
    List expRptColWise = new ArrayList();
    for(Integer i=1;i<=iResultSet1.getMetaData().getColumnCount();i++){
        expRptColWise.add(iResultSet1.getString(i));
    }
    expRptColWise.add(++row);
    expRptRowWise.add(expRptColWise);
}

可能对你有用

于 2012-09-04T06:48:58.443 回答