2013-03-13 230 views
0

我有表:與同一列SQL選擇多行值

column1 column2 column3  column4 
--------------------------------------------- 
1   53   6527   111 
2   53   6527   111 
3   53   6527   111 
4   53   6527   111 
5   53   6527   222 
6   53   6527   222 
7   53   6527   333 
8   53   6527   333 
9   53   6527   444 
10   53   6527   444 
11   53   6527   444 
12   53   6527   444 

我需要select如果存在,如果只有兩個,然後兩個或一個與一些column4值存在三排。馬克斯是三個。 select後,我需要得到結果是這樣的:

column1 column2 column3  column4 
--------------------------------------------- 
1   53   6527   111 
2   53   6527   111 
3   53   6527   111 
5   53   6527   222 
6   53   6527   222 
7   53   6527   333 
8   53   6527   333 
9   53   6527   444 
10   53   6527   444 
11   53   6527   444 
+0

請註明您通過添加適當的標籤(Oracle,SQL Server,MySQL等)來定位的RDBMS。可能會有利用不被普遍支持的語言或產品功能的答案。此外,通過使用特定的RDBMS標記它,您的問題可能會得到更適合回答的人的關注。 – Taryn 2013-03-13 10:31:31

+0

噢..對不起,我修好了:) – Justinas 2013-03-13 10:34:31

回答

0

由於您使用的是SQL Server,您可以使用ranking function s到得到結果:

select [column1], [column2], [column3], [column4] 
from 
(
    select [column1], [column2], [column3], [column4], 
    row_number() over(partition by column2, column3, column4 order by column1) rn 
    from yourtable 
) src 
where rn <= 3 

SQL Fiddle with Demo