gpt4 book ai didi

sql-server - SELECT DISTINCT 的替代方法

转载 作者:行者123 更新时间:2023-12-04 00:55:32 54 4
gpt4 key购买 nike

我不太熟悉 SQL 查询,但注意到使用 Select Distinct 运行查询时性能显着下降。我正在运行 SQL Server 2008 R2。以下是我的查询:

select distinct CL.ClientID, NL.Name 
from CL CL
inner join PR PR on CL.ClientID = PR.ClientID
where PR.WBT1 in (Select distinct WBT1
from TabFields
where custInclude = 'Y' and WBT2 = '')
and PR.WBT2 = ''
order by NL.Name

有谁知道如何在不使用 select distinct 的情况下修改此查询,以便在返回相同结果的同时加快查询速度?任何帮助是极大的赞赏。谢谢。

最佳答案

由于 JOIN,您只需要 DISTINCT。

所以不要使用 JOIN:使用 EXISTS 并将您实际上没有从中选择的所有表推送到 EXISTS 子句中

select CL.ClientID, CL.Name 
from CL CL
WHERE EXISTS (SELECT *
FROM
PR PR
JOIN
TabFields TF ON PR.WBT1 = TF.WBT1
WHERE
PR.WBT2 = '' AND
TF.custInclude = 'Y' and TF.WBT2 = '' AND
CL.ClientID = PR.ClientID
)
order by CL.Name

关于sql-server - SELECT DISTINCT 的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6414550/

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