根据偏好检索记录

时间:2018-02-04 15:28:34

标签: sql-server tsql

下面有一张包含样本数据的表格。

PatId        NetType
 100           In
 100           Out
 100           NA
 101           Out
 101           NA
 102           NA
 103           In

当同一患者有多个netTypeid时,只返回由(In,Out,NA)优先排序的前一个作为顺序。当我有一个可用于patid的In / Out / NA时我想要做的事情应该只返回In,当有一个patid的Out / NA时它应该只返回In.If没有重复只返回as是。上述场景的输出应为

PatId        NetType
 100           In 
 101           Out
 102           NA
 103           In

2 个答案:

答案 0 :(得分:3)

使用row_number()NetType

排序
select
    PatId, NetType
from (
    select
        PatId, NetType
        , row_number() over (partition by PatId order by case NetType when 'In' then 1 when 'Out' then 2 else 3 end) rn
    from
        myTable 
) t
where
    rn = 1

答案 1 :(得分:1)

与uzi相似

Name HDDs Total Size In GB HDDs FreeSpace
---- --------------------- --------------
C:                     146              6
E:                     205             35
相关问题