我只希望第一行显示在此查询中。但是,由于每个用户都有各自的服务,因此这些用户会出现多次。我只想在单独的查询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
答案 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