0

如何从 SQL Server 2008/2005 表中选择不同的和随机的行?

我有一个提示列表,我需要从中随机挑选一些提示,它们也必须是唯一的

我试过了:

Select 
    Distinct Tips 
From 
    jfpastrologytips 
Where 
    GetDate() <= validtill 
Order by 
    NewId()

并被异常委托


如果指定了 SELECT DISTINCT,则消息 145、级别 15、状态 1、行 1 ORDER BY 项必须出现在选择列表中。

4

2 回答 2

10

您可以通过使用GROUP BY而不是解决此问题DISTINCT

Select Tips 
From jfpastrologytips 
Where GetDate() <= validtill 
GROUP BY Tips 
Order by NewId()
于 2012-09-26T20:27:34.863 回答
0

试试这个,如果您只选择其中一个,则不需要 distinct:

Select top 1 Tips 
From jfpastrologytips 
Where GetDate() <= validtill 
Order by NewId()
于 2012-09-26T20:28:15.073 回答