2010-07-04 53 views
1

鑑於表SQL用於選擇行「家庭」的固定數量

| id | user | 
| 1 | 1 | 
| 1 | 2 | 
| 1 | 3 | 
| 1 | 4 | 
| 2 | 5 | 
| 2 | 6 | 
| 2 | 7 | 
| 2 | 8 | 

我想編寫一個查詢將返回3行中的id = 1和第3行中的id = 2(順序並不重要,但我會認爲它可以被強制執行)。

所以,最終的結果應該是這樣的(注意,3行每個ID):

| id | user | 
| 1 | 1 | 
| 1 | 2 | 
| 1 | 3 | 
| 2 | 5 | 
| 2 | 7 | 
| 2 | 8 | 

我應該如何寫這個SQL?我對HAVING的嘗試迄今尚未帶來有用的東西。

謝謝, Maxim。

+4

你還沒說你想要返回爲每個ID這三行。對於id 1,你已經顯示了前三個,而id 2則顯示了前兩個和最後一個。選擇行的標準是什麼? – Mike 2010-07-04 13:46:28

+0

我沒有說過,因爲順序無關緊要,它可能是隨機的,也可能是使用order by來定義的。這如何影響解決方案? – 2010-07-08 05:58:05

回答

0

我懷疑你想要的是

SELECT DISTINCT * 
    FROM my_table; 

但是這不會是問題的答案一個你已經說了,這似乎要三個任意選擇行,如果我正確地讀它。

0

您可以使用:

select top 3 * from [Table_Name] where id='1' or id='2'