SqlServer設(shè)置表主鍵的SQL語句中ASC關(guān)鍵字的作用是什么?
成都創(chuàng)新互聯(lián)公司成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站制作、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元白河做網(wǎng)站,已為上家服務(wù),為白河各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220
asc是升序,從小到大排序顯示;desc是降序,從大到小顯示。
CLUSTERED 是聚集索引
排序可以是升序的 (ASC),也可以是降序的 (DESC)。如果未指定是升序還是降序,就假定為 ASC。
下面的查詢返回按 ProductID 升序排序的結(jié)果:
代碼如下 復(fù)制代碼
USE AdventureWorks2008R2;
GO
SELECT ProductID, ProductLine, ProductModelID
FROM Production.Product
ORDER BY ProductID;
如果 ORDER BY 子句中指定了多個列,則排序是嵌套的。下面的語句先按產(chǎn)品子類別降序排序 Production.Product 表中的行,然后在每個產(chǎn)品子類別中按 ListPrice 升序排序這些行。
代碼如下 復(fù)制代碼
USE AdventureWorks2008R2;
GO
SELECT ProductID, ProductSubcategoryID, ListPrice
FROM Production.Product
ORDER BY ProductSubcategoryID DESC, ListPrice;
問題
同一個查詢的結(jié)果集為什麼有時候是按他想要的順序排列,有時候又不是,或者是在SQL2000里是這個順序,到了SQL2005/2008又是那個順序?
其實,只要語句里沒有指定“order by”,SQLSERVER并不會按照順序返回的。有可能你的表里有一個字段已經(jīng)建立了索引
你想結(jié)果集按照那個建立了索引的字段排序,那么你不指定“order by”是沒有問題的,因為表的存儲順序就是按照那個字段
的順序排好序了,所以可以不指定“order by”,但是如果你沒有在想排序的那個字段建立索引,或者在SQL2000里建立了
索引,而在SQL2005/2008里沒有建立索引,那么就要明確地用“order by”指定。如果你沒有指定,哪怕一模一樣的查詢,
結(jié)果集順序這一次和上一次不一樣是很正常的。
看你狀態(tài)用的什么數(shù)據(jù)類型了。要是用的字符型,那升序降序都是按照字母序。升序就asc降序就desc
order by 狀態(tài) desc 截止時間 asc
可以通過 “order by 字段名 asc (desc)” 命令進行排序。
sql:select * from tablename order by id DESC;
用 DESC 表示按倒序排序(即:從大到小排序) ,用 ACS 表示按正序排序(即:從小到大排序)。
參考資料
csdn.csdn[引用時間2018-1-28]
select * from table_name order by id
select * from table_name order by id desc 是降序
select * from table_name order by id asc 是升序