Показывать только первую строку в запросе SQL Server - PullRequest
0 голосов
/ 05 сентября 2018

Я хочу, чтобы в этом запросе отображалась только первая строка. Однако, поскольку у каждого пользователя есть отдельная услуга, пользователи появляются более одного раза. Я хочу показать только первую строку, а затем остальные строки в отдельном запросе 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 голосов
/ 06 сентября 2018

Это покажет отдельных пользователей:

SELECT DISTINCT
    fname,
    lname,
    dob
FROM 
    T1
ORDER BY 
    id
0 голосов
/ 05 сентября 2018

Вы можете использовать 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...