我想把資料庫中的表中的資料進行排序

2022-05-10 22:45:06 字數 4133 閱讀 2603

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

其它步驟一樣

2樓:匿名使用者

'比較每行的優先順序之後再根據優先順序把行進行排序'

這句沒看懂,已經比較了優先順序,還要根據優先順序排序,那麼和直接用優先順序排序有什麼差別?

我想把資料庫中的乙個表中的資料進行排序!!!!

3樓:繁振英成畫

如果是oracle資料庫,給你兩個方案

比如你要排序的表名為"源表",有三個列"程序名","執行時間","優先順序"

一、方案1:

用臨時表,中間排序會在記憶體中進行

(在同一會話內)

1.create

global

temporary

table

臨時表名

asselect

*from

源表where

1=02.

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

asselect

*from

源表where

1=0其它步驟一樣

4樓:依良闕卿

排序的命令是sort,格式是:

sort

to新錶名

on欄位名

補充:例如下面的命令:

use學生

sort

on學號

to學生_排序

產生乙個新的

學生_排序.dbf

檔案,裡面是排序了的。

如果你只是向按照某個標準進行排序檢視一下,不生成新的檔案,那麼可以使用sql語句,例如:

select

*from

學生order

by總成績

desc

5樓:潭蘭英青綢

'比較每行的優先順序之後再根據優先順序把行進行排序'

這句沒看懂,已經比較了優先順序,還要根據優先順序排序,那麼和直接用優先順序排序有什麼差別?

sql中表的資料的排序方式如何修改

6樓:匿名使用者

系統預設是以聚集索引排序,主鍵預設是聚集索引,也可手動改成非聚集索引,你可以新增一列標識列,就是自增列,然後把聚集索引給這列,系統就會預設按新增順序排了

7樓:匿名使用者

題目本身就bai比較考人du

,sql指的是sql命令,還zhi是sql server 資料庫。如果dao是sql命令,你只要回修改它的排序子答句就行了。如果是資料庫即微軟的sql server,既然你可以談排序的問題,那你肯定能開啟它的企業管理器了,在企業管理器中,開啟你要的那一張表,上面有乙個sql按鈕,你按一下,表上面就出現乙個sql命令視窗,它已經把sql命令的框架寫出來了,你在上面添上order by 排序子句,在其後面指定排序列名就行了,可以是復合的,也就是說可以指定乙個以上的列名。

8樓:彭文傑

如果記錄新增時間的話 可以用這個時間字段排序

order by time

9樓:

加個 新增時間 字段 然後按時間排序就行

10樓:千年蟲

order by 列 asc 或者 order by 列desc

如何根據mysql資料庫中的某乙個字段進行排序?

11樓:time嵐憶

先把分類全取出來,並隨機排序,取排在第乙個分類。

例如:西裝

然後查詢的時候 order by (category='西裝') desc,category 即可實現要求。

mysql是一種開放源**的關係型資料庫管理系統(rdbms),mysql資料庫系統使用最常用的資料庫管理語言--結構化查詢語言(sql)進行資料庫管理。

mysql這個名字,起源不是很明確。乙個比較有影響的說法是,基本指南和大量的庫和工具帶有字首「my」已經有10年以上,而且不管怎樣,mysql ab創始人之一的monty widenius的女兒也叫my。這兩個到底是哪乙個給出了mysql這個名字至今依然是個迷,包括開發者在內也不知道。

mysql的海豚標誌的名字叫「sakila」,它是由mysql ab的創始人從使用者在「海豚命名」的競賽中建議的大量的名字表中選出的。獲勝的名字是由來自非洲史瓦帝尼的開源軟體開發者ambrose twebaze提供。根據ambrose所說,sakila來自一種叫siswati的史瓦帝尼方言,也是在ambrose的家鄉烏干達附近的坦尚尼亞的arusha的乙個小鎮的名字。

mysql,雖然功能未必很強大,但因為它的開源、廣泛傳播,導致很多人都了解到這個資料庫。它的歷史也富有傳奇性。

sql資料庫如何按照表內某列int值的大小進行排序求指教!

12樓:

怎麼說呢,並不是說做不到,而是你的理解有一點點問題。

資料庫中的「表」總的來說是無序的,也就是說,它「不應該」有「順序」的概念。乙個表裡的每個條目都是一樣的,本質上沒有「先後」。「順序」體現在對錶的「查詢」動作中。

換句話說,就是你的order by才告訴引擎,查詢到的若干條目應該以什麼樣的順序排列。這是乙個很科學也很重要的概念。因為在實際使用中,你可能今天想按某個時間字段排序,明天想按某個索引號排序,但這些所謂的「順序」都是你想要看到的資料的一種投影方式,而並不是資料本身應當具有的屬性。

如果你確實需要對資料庫中的所有條目,按某個字段排列的話,比較可行的辦法就是把它們都讀出來,排序,清空或刪除表(並重建),重新寫入資料。

13樓:_徵信

這個需要在排序語句中使用條件判斷

例如:表【table_temp】中列【col1】為字元,屬性為varchar(10),排序時需要按照b、a、c的順序顯示,則可按照以下sql語句:

select

*from

table_temp

order by

case

when col1='b' then 1

when col1='a' then 2

when col1='c' then 3end

14樓:匿名使用者

按照你想要的結果插入另一張表中;話說改變資料在表中的儲存順序沒有意義呀,這個不是前台程式做的事情麼

有「學生課程」資料庫,資料庫中包括表

1.從庫中查詢計算機系選修資料庫基礎與應用的學生的學號 姓名 成績,按學號遞增專排序,存入遊屬標student中,唯讀。2.查詢資訊工程系學生的年齡。3.cover的這個啥沒學過就幫不上忙了 等待高人吧4.貌似 如果讀取的數值為0,則不允許刪除且允許定義新值ps 不是很肯定,你可以再參考下其他人的答...

oracle資料庫表中,插入資料的時候如何產生母 數字編號

先建立乙個sequence 然後給插入資料的表寫個trigger before insert 的時候 設定這個欄位的值為 sd sequence.nextval create sequence 表名 seq increment by 1 start with 100000001 nocache in...

C中怎麼讀取SQL資料庫表中的資料後顯示在TEXTBO

private void getdatabyparmsql mand catch exception ee finally string connstring 連線字串string sql 資料庫查詢語句connection con new connection connstring mand cm...