select
top
10
from
表名
order
by
排序列
desc;
sql的執行順序先按照你的要求排序,然後才返回查詢的內容。例如有一個名為id自動增長的列,表中有100條數據,列的值得分別是1、2、3、4………9、99、100。那麼查詢加了desc你得到的是91到100條,就是最後十條,如果加asc你得到的將會是1到10,也就是最前面的那幾條。
② 按欄位里邊的指定值排序方法
sql語句的排序,有止是
asc,desc
簡單的正序、倒序排列,還可以根據需要欄位的值,來執行排序。可使用如下方式:
1.點擊新建查詢:
2.輸入如下語句:
order by
case `a1`
when
a2 then 1 // 當值為a2,排在第一個
when a3
then 2 // 當值為a3,排在第二個
when a1
then 3 // 當值為a1,排在第三個
end
asc // 按上面順序,正序排列(也可為desc)
order
by
語句用於根據指定的列對結果集進行排序。
order
by
語句默認按照升序對記錄進行排序。
如果希望按照降序對記錄進行排序,可以使用
desc
關鍵字。
拓展資料:
sql常見語句
更新:update
table1
set
field1=value1
where
范圍
查找:select
*
from
table1
where
field1
like
』%value1%』
(所有包含『value1』這個模式的字元串)
排序:select
*
from
table1
order
by
field1,field2
[desc]
求和:select
sum(field1)
as
sumvalue
from
table1
平均:select
avg(field1)
as
avgvalue
from
table1
最大:select
max(field1)
as
maxvalue
from
table1
最小:select
min(field1)
as
minvalue
from
table1[separator]
參考資料:
網路
sql
order
by
③ 用SQL語句實現一部分內容正序,一部分內容倒序
我也是菜鳥,呵呵。但我想了一下,你可以嘗試一下用創建臨時表+游標的形式解決。雖然笨了點,但能夠完成你的要求。
select * into #Templtable1
from customer
where result='待完成'
order by enddate desc
DECLARE @變數 nvarchar(10) --定義你表裡的欄位,有幾個定義幾個
DECLARE MSTemp_customer_cursor CURSOR FOR
SELECT *
FROM customer
where result='完成' order by enddate asc
Open MSTemp_customer_cursor
FETCH NEXT FROM MSTemp_customer_cursor
INTO @變數
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO #TempTable1 Values(@變數)
FETCH NEXT FROM MSTemp_customer_cursor
INTO @變數
END
CLOSE MSTemp_customer_cursor
DEALLOCATE MSTemp_customer_cursor
Select * from #TempTable1
Go
不知道行不行,你調試一下。
前提:你的臨時表 #TempTable1 是不存在的,要不你就換個臨時表名。
④ sql server 怎麼排序
排序可以是升序的 (ASC),也可以是降序的 (DESC)。如果未指定是升序還是降序,就假定為 ASC。
下面的查詢返回按 ProctID 升序排序的結果:
代碼如下 復制代碼
USE AdventureWorks2008R2;
GO
SELECT ProctID, ProctLine, ProctModelID
FROM Proction.Proct
ORDER BY ProctID;
如果 ORDER BY 子句中指定了多個列,則排序是嵌套的。下面的語句先按產品子類別降序排序 Proction.Proct 表中的行,然後在每個產品子類別中按 ListPrice 升序排序這些行。
代碼如下 復制代碼
USE AdventureWorks2008R2;
GO
SELECT ProctID, ProctSubcategoryID, ListPrice
FROM Proction.Proct
ORDER BY ProctSubcategoryID DESC, ListPrice;
問題
同一個查詢的結果集為什麽有時候是按他想要的順序排列,有時候又不是,或者是在SQL2000里是這個順序,到了SQL2005/2008又是那個順序?
其實,只要語句里沒有指定「order by」,SQLSERVER並不會按照順序返回的。有可能你的表裡有一個欄位已經建立了索引
你想結果集按照那個建立了索引的欄位排序,那麼你不指定「order by」是沒有問題的,因為表的存儲順序就是按照那個欄位
的順序排好序了,所以可以不指定「order by」,但是如果你沒有在想排序的那個欄位建立索引,或者在SQL2000里建立了
索引,而在SQL2005/2008里沒有建立索引,那麼就要明確地用「order by」指定。如果你沒有指定,哪怕一模一樣的查詢,
結果集順序這一次和上一次不一樣是很正常的。
⑤ sql語句中對一個欄位排序,欄位中含有字元串和數字,(怎根據數字進行排序)
order by 欄位名稱+0 desc/asc的形式進行排序
order by 欄位名稱*1 desc/asc的形式進行排序
⑥ 資料庫按從小到大的順序排列sql怎麼寫
在select 語句結尾使用: order by 欄位1 ASC/DESC,欄位2 ASC/DESC ...
ASC為正序從小到大,DESC為倒序從大到小。
⑦ SQL排序問題
sql排序的規則是,按照第一個欄位的順序正序或倒序排列,
當第一個欄位是相同的,那麼會按照第二個欄位的正序或倒序排列
依次類推,如果後面沒有排序欄位,會隨機排列
所以,按照第一個欄位倒序,按照第二個欄位正序排列,結果視覺顯示全部到序,原因可能是
第一個欄位並無相同的,且第一個欄位和第二個排序欄位數值的增減是成反比的。
⑧ sql 按欄位指定值排序
sql語句的排序,有止是 asc,desc 簡單的正序、倒序排列,還可以根據需要欄位的值,來執行排序。可使用如下方式:
1.點擊新建查詢:
2.輸入如下語句:
orderby
case`A1`
when a2then1//當值為a2,排在第一個
whena3 then2//當值為a3,排在第二個
whena1 then3//當值為a1,排在第三個
end
asc//按上面順序,正序排列(也可為desc)
ORDER BY 語句用於根據指定的列對結果集進行排序。
ORDER BY 語句默認按照升序對記錄進行排序。
如果希望按照降序對記錄進行排序,可以使用 DESC 關鍵字。
拓展資料:
sql常見語句
更新:update table1 set field1=value1 where 范圍
查找:select * from table1 where field1 like 』%value1%』 (所有包含『value1』這個模式的字元串)
排序:select * from table1 order by field1,field2 [desc]
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1[separator]
⑨ sql按某個欄位值順序排序
升序:select * from 表名 order by 表中的欄位 asc(MySQL中默認是升序排列,可不寫) ;
降序:select * from 表名 order by 表中的欄位 desc ;