2013-11-29 26 views
0

我有一張表,如下圖所示。我已經有了一個代碼來選擇所有沒有RQID的行,並且遵循那些具有RQID的行。SQL ORDER BY(CASE),NEWID()

SELECT * FROM table1 
WHERE moduleexam = 20 
ORDER BY CASE 
WHEN RQID <> '' 
THEN 1 
ELSE 0 
END, NEWID() 

enter image description here

查詢的工作方式是隨機選擇,除了具有RQID那些行的所有行。

enter image description here

的問題是在具有RQID行。我怎樣才能讓兩個具有相同RQID的行按順序排列?

P.S.我使用MSSQL Server 2005的

回答

1

嘗試

ORDER BY CASE 
WHEN RQID <> '' 
THEN 1 
ELSE 0 
END, RQID, NEWID() 

由空排序後/不爲空,將根據實際RQID,之後隨機排序。

+0

謝謝。有用! :) – eirishainjel

1
ORDER BY CASE ... END, RQID, NEWID(); 
+0

謝謝。有用! :) – eirishainjel