我有一张如下图所示的表格。我已经有一个代码可以选择所有没有RQID的行,然后是那些有RQID的行。
SELECT * FROM table1
WHERE moduleexam = 20
ORDER BY CASE
WHEN RQID <> ''
THEN 1
ELSE 0
END, NEWID()
查询的工作原理是选择除了那些具有RQID的行以外的所有行。
问题在于具有RQID的行。如何才能使具有相同RQID的两行按顺序排序?
P.S。我正在使用MSSQL Server 2005。
答案 0 :(得分:1)
ORDER BY CASE ... END, RQID, NEWID();
答案 1 :(得分:1)
尝试
ORDER BY CASE
WHEN RQID <> ''
THEN 1
ELSE 0
END, RQID, NEWID()
按空/非空排序后,它将按实际RQID排序,然后随机排序。