2011-09-15 110 views
-5

我已经有一个数据见下表提到:SQL查询以下问题

Name 
    ---- 
    ram 
    ram 
    ram 
    sita 
    sita 
    sita 

现在我需要把出象下面这样:

ram 
sita 
ram 
sita 
ram 
sita 

被任何人知道答案吗?

+5

这是很少去。请提供一些更详细的信息,表格结构,您正在使用的查询,相关表格等等...... –

+1

您准确的标准是什么?如果'Name'既不是'ram'也不是'sita'? –

+1

-1,这是一个形式很差的问题。它没有给我们什么回答你。 – Ollie

回答

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可能支持不同的语法。

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