【发布时间】:2013-09-25 11:20:33
【问题描述】:
我有一个包含 ID、名称和级别列的表。我想通过这种模式选择表的记录: 首先随机选择它们,然后按级别列对这些随机记录进行排序。
例如:我的示例表和记录:
ID name Level
---------------------------------
1 red-book 1
2 blue-pen 10
3 black-board 12
4 balck-Book 1
5 white-book 1
6 red-pen 10
7 green-pen 10
结果应该是这样的:
ID name level
------------------------------------------
3 black-board 12
6 red-pen 10
2 blue-pen 10
7 green-pen 10
4 balck-Book 1
1 red-book 1
5 white-book 1
我也用过
SELECT * FROM MyTable ORDER BY NEWID(),Level DESC
和
SELECT * FROM
(SELECT * FROM MyTable ORDERBY NEWID())As TempTbl
ORDER BY Level DESC
和
CREATE TABLE #MyTempTable (ID INT,name Nvarchar(256),Levels INT)
INSERT INTO #MyTempTable SELECT * FROM MyTable ORDER BY NEWID()
SELECT * FROM #MyTempTable ORDER BY Levels DESC
【问题讨论】:
-
那么您的问题是什么,您尝试过什么?
-
你使用的是哪个数据库?
-
随机选择所有记录然后按降序排列有什么好处?听起来像一个简单的
SELECT * FROM table ORDER BY level DESC;就足够了,我不明白“随机”部分。 -
SELECT * FROM table ORDER BY NEWID(),Levels DESC 我没有看到我想要的答案!
-
SELECT * FROM MyTable ORDER BY Level DESC, NEWID()应该可以工作。
标签: sql sql-server random