如何从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项必须出现在选择列表中。
答案 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()