2012-04-17 52 views
1

我有以下正在正常工作的sql語句。SQL - 如何重新排序使用限制約束的選擇查詢

SELECT * FROM table WHERE name IS NULL ORDER BY date DESC LIMIT 20; 

該查詢基本上對日期desc上的表進行排序,並選擇字段'name'爲空的最後20條記錄。問題是檢索的查詢是在日期desc上排序的。這當然是邏輯......但我想要的是'輸出'是按照asc排序的。預先感謝您的回覆。乾杯。馬克

回答

2

試試這個:

SELECT * FROM (
    <your query> 
) 
ORDER BY date 

注:一些SQL方言需要命名的子查詢,即使沒有真正使用該名稱,例如:

SELECT * FROM (
    <your query> 
) T 
ORDER BY date 
+0

你好Branko。感謝您的幫助。不幸的是,這似乎並不奏效。 MySql告訴:#1248 - 每個派生表都必須有自己的別名 – Marc 2012-04-17 11:03:51

+0

Ok Branko,我在內部聲明後添加爲t,現在它正在工作。謝謝... – Marc 2012-04-17 11:08:55

+0

@Marc是的,一些DBMS需要這個。當您提出DBMS特定問題時,請將DBMS包含在您的問題標籤中。在這個特定的情況下,我不知道你是針對MySQL的。 – 2012-04-17 12:30:03

1

使用查詢另一個查詢內,命令外部查詢,它將再次應用順序。