gpt4 book ai didi

sql-server - SQL 排除先前在另一个类别中选择的行

转载 作者:行者123 更新时间:2023-12-03 01:55:57 25 4
gpt4 key购买 nike

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

我的站点列表也来自查询。

从站点列表中选择不同的站点

1
2
4
8
9

肯定应该有一种简单有效的方法来做到这一点吗?

最佳答案

这将给出您想要的结果

SELECT MIN(Site) AS Site,
Data
FROM dbo.Sample
GROUP BY Data
ORDER BY Site

关于sql-server - SQL 排除先前在另一个类别中选择的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15033335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com