我想把数据库中的一个表中的数据进行排序!!!!

我想把数据库中的一个表中的数据进行排序!!!!,第1张

如果是ORACLE数据库,给你两个方案

比如你要排序的表名为"源表",有三个列"进程名","运行时间","优先级"

一、方案1:

用临时表,中间排序会在内存中进行

(在同一会话内)

1

CREATE

GLOBAL

TEMPORARY

TABLE

临时表名

AS

SELECT

FROM

源表

WHERE

1=0

2

INSERT

INTO

临时表名

SELECT

FROM

源表

ORDER

BY

优先级

--

排序条件

3

DELETE

FROM

源表;

4

INSERT

INTO

源表

SELECT

FROM

临时表名

ORDER

BY

优先级

5

SELECT

FROM

源表

--

确认下排序后的数据

6

COMMIT;

--

如果第5步确认后数据正确,如果不正确,就ROLLBACK

二、方案2:

非临时表,中间排序会占用磁盘存储,适用于大表(一般为百万行级以上)

1

CREATE

TABLE

临时表名

NOLOGGING

AS

SELECT

FROM

源表

WHERE

1=0

其它步骤一样

有点慢是正常的,

select top 20 from url 就只选择20条当然快咯。

如果是

select top 20 from [url] order by viste desc, id desc

那么数据库里还有把100多万的数据的数据先进行排序,然后才

会选择排序后的20条,数据太多了造成有点慢没说的了

以上就是关于我想把数据库中的一个表中的数据进行排序!!!!全部的内容,包括:我想把数据库中的一个表中的数据进行排序!!!!、sql数据库自动排序、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/10180601.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存