SQL Server:不同的+随机行

时间:2012-09-26 20:25:56

标签: sql sql-server sql-server-2008 tsql sql-server-2005

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

我有一个提示列表,我需要从中选择一些提示随机,并且它们也必须唯一

我试过了:

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

并获得了异常委托

  

Msg 145,Level 15,State 1,Line 1
  如果指定了SELECT DISTINCT,则ORDER BY项必须出现在选择列表中。

2 个答案:

答案 0 :(得分:9)

您可以使用GROUP BY代替DISTINCT

来解决此问题
Select Tips 
From jfpastrologytips 
Where GetDate() <= validtill 
GROUP BY Tips 
Order by NewId()

答案 1 :(得分:0)

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

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