2012-09-26 122 views
0

如何從SQL Server 2008/2005表中選擇不同行和隨機行?SQL Server:獨特+隨機行

我有我需要挑選一些提示隨機提示列表,他們必須唯一了。

我想:

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

與例外

消息145,級別15,狀態1得到的委託,1號線
ORDER BY項目必須出現在選擇列表中,如果SELECT DISTINCT被指定。

回答

10

您可以通過使用GROUP BY代替DISTINCT

Select Tips 
From jfpastrologytips 
Where GetDate() <= validtill 
GROUP BY Tips 
Order by NewId() 
+0

呀!!!!, 有效。 Thaxs –

+0

我也會爲此添加一個「TOP N」...你說你只需要幾行,然後只選擇幾行。 –

0

試試這個,如果你只選擇其中的一個,你並不需要不同的解決這個問題:

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

我沒有看到問題中提到的只有一個? –

+0

在這裏,我可以選擇多個提示,恐怕上面(1)會讓我只選擇一行。 –

+1

現在我確實看到了,這是標題讓我 - 行是奇異的。 – Hogan