可以通過 “order by 字段名 asc (desc)” 命令進(jìn)行排序。
創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的河北網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
sql:select * from tablename order by id DESC;
用 DESC 表示按倒序排序(即:從大到小排序) ,用 ACS 表示按正序排序(即:從小到大排序)。
參考資料
csdn.csdn[引用時(shí)間2018-1-28]
在PLSQL中怎么能娶到表中按ID降序排列的前十條記錄的sql語(yǔ)句是:
select rownum,t.* from (select * from test order by id desc) t where rownum11;
PLSQL是連接的oracle數(shù)據(jù)庫(kù),oracle中沒有l(wèi)imit(limit是mysql中的用法)、top(top是sqlserver)關(guān)鍵字,oracle中限制行數(shù)條件是用rownum。
PL/SQL主要用于數(shù)據(jù)庫(kù)編程,所以其所有的數(shù)據(jù)類型跟Oracle數(shù)據(jù)庫(kù)里的字段類型是一一對(duì)應(yīng)的,大體分為數(shù)字型、布爾型、字符型和日期型。這里簡(jiǎn)單介紹兩種常用數(shù)據(jù)類型:number、varchar2。
number,用來(lái)存儲(chǔ)整數(shù)和浮點(diǎn)數(shù)。范圍為1e130~10e125,其使用語(yǔ)法為:number[(precision, scale)]其中(precision, scale)是可選的,precision表示所有數(shù)字的個(gè)數(shù),scale表示小數(shù)點(diǎn)右邊數(shù)字的個(gè)數(shù)。
varchar2用來(lái)存儲(chǔ)變長(zhǎng)的字符串,其使用語(yǔ)法為:varchar2[(size)]其中size為可選,表示該字符串所能存儲(chǔ)的最大長(zhǎng)度。
在PL/SQL中聲明變量與其他語(yǔ)言不太一樣,它采用從右往左的方式聲明,比如聲明一個(gè)number類型的變量v_id,那其形式應(yīng)為:
v_id number,如果給上面的v_id變量賦值,不能用“=”,應(yīng)該用“:=”,即形式為:v_id :=5;
擴(kuò)展資料
對(duì)于rownum來(lái)說(shuō)它是oracle系統(tǒng)順序分配為從查詢返回的行的編號(hào),返回的第一行分配的是1,第二行是2,依次類推,這個(gè)偽字段可以用于限制查詢返回的總行數(shù),且rownum不能以任何表的名稱作為前綴。
1、rownum?對(duì)于等于某值的查詢條件,例如:
SQL select rownum,id,name from student where rownum=1;
SQL select rownum,id,name from student where rownum =2;
2、rownum對(duì)于大于某值的查詢條件,例如
SQLselect * from(select rownum no ,id,name from student) where no2;
3、rownum對(duì)于小于某值的查詢條件,rownum對(duì)于rownumn((n1的自然數(shù))的條件認(rèn)為是成立的,所以可以找到記錄。
排序可以是升序的
(ASC),也可以是降序的
(DESC)。如果未指定是升序還是降序,就假定為
ASC。
下面的查詢返回按
ProductID
升序排序的結(jié)果:
代碼如下
復(fù)制代碼
USE
AdventureWorks2008R2;
GO
SELECT
ProductID,
ProductLine,
ProductModelID
FROM
Production.Product
ORDER
BY
ProductID;
如果
ORDER
BY
子句中指定了多個(gè)列,則排序是嵌套的。下面的語(yǔ)句先按產(chǎn)品子類別降序排序
Production.Product
表中的行,然后在每個(gè)產(chǎn)品子類別中按
ListPrice
升序排序這些行。
代碼如下
復(fù)制代碼
USE
AdventureWorks2008R2;
GO
SELECT
ProductID,
ProductSubcategoryID,
ListPrice
FROM
Production.Product
ORDER
BY
ProductSubcategoryID
DESC,
ListPrice;
問題
同一...排序可以是升序的
(ASC),也可以是降序的
(DESC)。如果未指定是升序還是降序,就假定為
ASC。
下面的查詢返回按
ProductID
升序排序的結(jié)果:
代碼如下
復(fù)制代碼
USE
AdventureWorks2008R2;
GO
SELECT
ProductID,
ProductLine,
ProductModelID
FROM
Production.Product
ORDER
BY
ProductID;
如果
ORDER
BY
子句中指定了多個(gè)列,則排序是嵌套的。下面的語(yǔ)句先按產(chǎn)品子類別降序排序
Production.Product
表中的行,然后在每個(gè)產(chǎn)品子類別中按
ListPrice
升序排序這些行。
代碼如下
復(fù)制代碼
USE
AdventureWorks2008R2;
GO
SELECT
ProductID,
ProductSubcategoryID,
ListPrice
FROM
Production.Product
ORDER
BY
ProductSubcategoryID
DESC,
ListPrice;
問題
同一個(gè)查詢的結(jié)果集為什麼有時(shí)候是按他想要的順序排列,有時(shí)候又不是,或者是在SQL2000里是這個(gè)順序,到了SQL2005/2008又是那個(gè)順序?
其實(shí),只要語(yǔ)句里沒有指定“order
by”,SQLSERVER并不會(huì)按照順序返回的。有可能你的表里有一個(gè)字段已經(jīng)建立了索引
你想結(jié)果集按照那個(gè)建立了索引的字段排序,那么你不指定“order
by”是沒有問題的,因?yàn)楸淼拇鎯?chǔ)順序就是按照那個(gè)字段
的順序排好序了,所以可以不指定“order
by”,但是如果你沒有在想排序的那個(gè)字段建立索引,或者在SQL2000里建立了
索引,而在SQL2005/2008里沒有建立索引,那么就要明確地用“order
by”指定。如果你沒有指定,哪怕一模一樣的查詢,
結(jié)果集順序這一次和上一次不一樣是很正常的。