仅显示SQL Server查询中的第一行

时间:2018-09-05 20:00:09

标签: sql sql-server tsql

我只希望第一行显示在此查询中。但是,由于每个用户都有各自的服务,因此这些用户会出现多次。我只想在单独的查询ORDERING BY 'id'中显示第一行,然后显示其他行。

SELECT DISTINCT TOP (7)
    id,
    fname,
    lname,
    dob,
    services
FROM 
    T1
ORDER BY 
    id

输出:

id  fname   lname   dob         services    
------------------------------------------
100 Joe     Blue    2/20/2001   JDT 
100 Joe     Blue    2/20/2001   VOCP    
101 Mark    Pink    1/5/2000    OPAP    
101 Mark    Pink    1/5/2000    AARCHD  
102 Wally   Green   1/2/2000    AARCHD  
102 Wally   Green   1/2/2000    OPAP    
103 Steve   Yellow  1/10/2000   AARCHD  

2 个答案:

答案 0 :(得分:1)

您可以在row_number()中使用order by。但是,SQL表表示无序集。除非另一列指定了顺序,否则没有“第一行”。

在这种情况下,我使用的是service,但是我不确定这是否是您想要的:

SELECT TOP (1) WITH TIES t1.*
FROM T1
ORDER BY ROW_NUMBER() OVER (PARTITION BY id ORDER BY service);

答案 1 :(得分:0)

这将显示不同的用户:

SELECT DISTINCT
    fname,
    lname,
    dob
FROM 
    T1
ORDER BY 
    id
相关问题