如何在select查询

时间:2016-08-29 08:00:22

标签: sql oracle

我想创建一个列'计数器',它会在我们运行select语句时增加计数。

假设我今天运行了select查询。我的输出如下所示。

name    | employeeid | counter

raj        123             1
steve      124             1
brad       125             1

明天,当我运行查询时,旧记录的计数器应该会增加

name    | employeeid | counter

raj        123             2
steve      124             2
brad       125             2
pitt       126             1

在我运行计数器的第3天,对于上面的旧记录,应该会增加。

name    | employeeid | counter

raj        123             3
steve      124             3
brad       125             3
pitt       126             2
camie      127             1

选择名称,employeeid,count(name)over(按名称分区)计数器来自mytable desc的mytable

2 个答案:

答案 0 :(得分:2)

为此您必须使用触发器,但问题是您无法在select声明中使用触发器。

但是可以通过使用处理程序PL / SQL过程来实现 - 它将处理我们想要触发的选择事件,然后我们可以定义与我们的处理程序关联的细粒度审计策略。

参考:Click here

希望它会有所帮助。

答案 1 :(得分:2)

如果您假设查询每天执行一次,那么您的计数器基本上是创建记录与今天之间的天数+ 1.假设创建日期存储在creation_date列中。你可能需要这样的东西:

img.onload = function(){
    //the function here..
    //when I use this method it succeed to convert
    //only the last image.
}