从光标获取值

Posted

技术标签:

【中文标题】从光标获取值【英文标题】:Getting value from cursor 【发布时间】:2015-06-05 02:59:02 【问题描述】:

我最近开始学习 PL/SQL,发现自己遇到了这个问题。我有一个游标,其中包含通过另一个表中的代码选择的特定人员的数据。我用那个人的薪水获取所有月份并输出它们。现在我需要对所有薪水做一个 avg() 。我怎么做 ?我只能从光标中获取该列吗?我本可以计算行数并将工资总额除以该计数,然后我可以进行另一个选择,但有没有更快的方法?

【问题讨论】:

游标通常不是做几乎任何事情的最快方式。但是你可以在PLSQL中自己计算和计算,然后进行除法。 【参考方案1】:

您不需要光标即可将平均工资作为单个值。您需要使用聚合函数。即使您需要一个游标来将数据返回给调用代码,您仍然可以使用聚合函数来计算平均值并返回该游标。

这只是一个例子

Declare
    v_avgSal employees.salary%TYPE;
Begin    
    SELECT AVG(salary) into v_avgSal 
    FROM employees
    WHERE employee_id = 10 And 
          (payDate >= To_Date('01012015', 'MMDDYYYY') AND payDate < To_Date('01012016', 'MMDDYYYY'));
    Dbms_Output.Put_Line(v_avgSal);
End;

【讨论】:

以上是关于从光标获取值的主要内容,如果未能解决你的问题,请参考以下文章

如何从光标中获取布尔值(Java SQLite)

如何从光标 Oracle/Toad 获取数据

Android SQLite - 光标和内容值

使用光标获取字段值

使用光标获取字段值

如何通过光标获取android中的时间戳列值?