过滤结果选择

时间:2011-03-14 12:54:33

标签: sql sql-server

select * from table

name1  4 o
name1  5 x
name1  3 x
name2  3 x
name3  2 x

我有以上结果,name1的值为3,4和5 我想得到如下结果,如果同一个名称有多个值,那么标记'O'的位置就是名字。

name1  4 o
name2  3 x
name3  2 x

请帮忙!

1 个答案:

答案 0 :(得分:1)

您可以使用row_number选择ox列的最低值,例如:

select  *
from    (
        select  *
        ,       row_number() over (partition by name order by ox asc) as rn
        from    YourTable
        ) as SubQueryAlias
where   rn = 1

子查询是必需的,因为您无法在row_number子句中直接使用where