Sql查询以下问题

时间:2011-09-15 11:58:34

标签: sql sql-server oracle sql-server-2008

我有一张表格,如下所述:

  Name
  ----
  ram
  ram
  ram
  sita
  sita
  sita

现在我需要如下所示:

ram
sita
ram
sita
ram
sita

是否有人知道答案?

2 个答案:

答案 0 :(得分:3)

您可以使用分析函数ROW_NUMBER():

执行此操作
select name from 
    ( select name
             , row_number() over (partition by name order by id) as rn
      from your_table
order by rn, name
/

您需要一个列来命名名称:我提出了ID,但不知道您的表有哪些列。


以上是Oracle语法。 T-SQL可能支持不同的语法。

答案 1 :(得分:2)

declare @T table(Name varchar(5))

insert into @T values
('ram'),
('ram'),
('ram'),
('sita'),
('sita'),
('sita')

select Name
from @T    
order by row_number() over(partition by Name order by Name), Name