SELECT * FROM dbo.Sample ORDER BY Site
输出:
Site Data
1 Cat
1 Mule
1 Pig
2 Giraffe
2 Dog
2 Horse
2 Mule
4 Cat
8 Dog
8 Pig
8 Mule
8 Bull
9 Bull
9 Giraffe
9 Moose
我想显示按站点排序的数据,但排除以前站点中的行。显示站点 1 中的所有项目 站点 2 中尚未在站点 1 中显示的任何项目,等等。
所以结果显示为:
Site Data
---- ----
1 Cat
1 Mule
1 Pig
2 Dog
2 Giraffe
2 Horse
9 Moose
初始列表是从具有多个连接的查询构建的。
一个工作示例是:
SELECT * FROM dbo.Sample WHERE Site = 1
UNION
SELECT * FROM dbo.Sample WHERE Site = 2
AND Data NOT IN (SELECT Data FROM dbo.Sample WHERE Site < 2)
UNION
SELECT * FROM dbo.Sample WHERE Site = 8
AND Data NOT IN (SELECT Data FROM dbo.Sample WHERE Site < 8)
UNION
SELECT * FROM dbo.Sample WHERE Site = 9
AND Data NOT IN (SELECT Data FROM dbo.Sample WHERE Site < 9)
ORDER BY Site
我的站点列表也来自查询。
从 SiteList 中选择不同的站点
1
2
4
8
9
当然应该有一种简单有效的方法来做到这一点?