oracle 如何取当前记录的下一条记录

oracle 如何取当前记录的下一条记录,第1张

在不进行表连接的情况下,如果想在当前行访问下一行或上一行数据,可以利用ORACLE的分析函数LEAD 和LAG

关于lead的http://hi.baidu.com/420350501/blog/item/36691af47f60f6a0a40f5295.html:

关于lag的:http://hi.baidu.com/420350501/blog/item/d1ab462a2859375f4fc22694.html

UPDATE

TABLE_NAME

SET

名称

=

(SELECT

Y.名称

FROM

TABLE_NAME

Y

WHERE

PID

=

0001),

代号

=

(SELECT

Y.代号

FROM

TABLE_NAME

Y

WHERE

PID

=

0001),

步骤

=

(SELECT

Y.步骤

FROM

TABLE_NAME

Y

WHERE

PID

=

0001),

效果图路径

=

(SELECT

Y.效果图路径

FROM

TABLE_NAME

Y

WHERE

PID

=

0001)

WHERE

PID

=

0032

COMMIT

我特意创建了一个表,字段跟你描述的一样.经过测试才回答你的.

针对单行记录的更新 *** 作,这个是最简单的.

其次因为需要处理的记录条数少.不会影响性能.再次,表的字段少,查询速度快.

只是我是以ORACLE数据库来作为实例的,换成其他数据库,换下语法就OK了.

create

table

test_table

(

PID

VARCHAR2(20),

名称

VARCHAR2(20),

代号

VARCHAR2(20),

步骤

VARCHAR2(20),

效果图路径

VARCHAR2(20)

)

INSERT

INTO

test_table(PID,名称,代号,步骤,效果图路径)

VALUES

(

'0001'

,'苹果4','IP4','下单中','D:\苹果图')

INSERT

INTO

test_table(PID,名称,代号,步骤,效果图路径)

VALUES

(

'0032'

,'

','

','

','

')

COMMIT

你可以试试,看我的正确不正确.

如果是SQLSERVER数据库,这样是手动执行的方式,

需要换成自动执行,就把这个SQL嵌套进存储过程中就OK了.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6757841.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存