Sql server (或者提供您想要的行为的最小子集),引擎将更优先选择散列联接,但即使如此,如果它认为有更好的方法,它仍然可以覆盖您的建议。我建议只声明变量,将count(*)移出状态,然后继续个人操作,因为与引擎作战是一场艰苦的战斗。谢谢您的建议。我把它改成了select
Sql server (或者提供您想要的行为的最小子集),引擎将更优先选择散列联接,但即使如此,如果它认为有更好的方法,它仍然可以覆盖您的建议。我建议只声明变量,将count(*)移出状态,然后继续个人操作,因为与引擎作战是一场艰苦的战斗。谢谢您的建议。我把它改成了select,sql-server,Sql Server,(或者提供您想要的行为的最小子集),引擎将更优先选择散列联接,但即使如此,如果它认为有更好的方法,它仍然可以覆盖您的建议。我建议只声明变量,将count(*)移出状态,然后继续个人操作,因为与引擎作战是一场艰苦的战斗。谢谢您的建议。我把它改成了select Count(),做了一些冥想,每次读到关于为什么你“从不”使用Count()检查存在的文章时,我都会继续争取内心的平静。我想我终于要继续了:) if ( SELECT COUNT(*) FROM Observatio
(或者提供您想要的行为的最小子集),引擎将更优先选择散列联接,但即使如此,如果它认为有更好的方法,它仍然可以覆盖您的建议。我建议只声明变量,将count(*)移出状态,然后继续个人操作,因为与引擎作战是一场艰苦的战斗。谢谢您的建议。我把它改成了select Count(),做了一些冥想,每次读到关于为什么你“从不”使用Count()检查存在的文章时,我都会继续争取内心的平静。我想我终于要继续了:)
if (
SELECT COUNT(*)
FROM ObservationOrganism omo
JOIN Observation om ON om.ObservationID = omo.ObservationMicID
JOIN Organism o ON o.OrganismID = omo.OrganismID
JOIN ObservationMicDrug omd ON omd.ObservationOrganismID = omo.ObservationOrganismID
JOIN SIRN srn ON srn.SIRNID = omd.SIRNID
JOIN OrganismDrug od ON od.OrganismDrugID = omd.OrganismDrugID
WHERE
om.StatusCode IN ('F', 'C')
AND o.OrganismGroupID <> -1
AND od.OrganismDrugGroupID <> -1
AND (om.LabType <> 'screen' OR om.LabType IS NULL)) > 0
print 'records';
IF (EXISTS(
SELECT *
FROM ObservationOrganism omo
JOIN Observation om ON om.ObservationID = omo.ObservationMicID
JOIN Organism o ON o.OrganismID = omo.OrganismID
JOIN ObservationMicDrug omd ON omd.ObservationOrganismID = omo.ObservationOrganismID
JOIN SIRN srn ON srn.SIRNID = omd.SIRNID
JOIN OrganismDrug od ON od.OrganismDrugID = omd.OrganismDrugID
WHERE
om.StatusCode IN ('F', 'C')
AND o.OrganismGroupID <> -1
AND od.OrganismDrugGroupID <> -1
AND (om.LabType <> 'screen' OR om.LabType IS NULL))
print 'records'
Declare @recordCount INT;
SELECT @recordCount = COUNT(*)
FROM ObservationOrganism omo
JOIN Observation om ON om.ObservationID = omo.ObservationMicID
JOIN Organism o ON o.OrganismID = omo.OrganismID
JOIN ObservationMicDrug omd ON omd.ObservationOrganismID = omo.ObservationOrganismID
JOIN SIRN srn ON srn.SIRNID = omd.SIRNID
JOIN OrganismDrug od ON od.OrganismDrugID = omd.OrganismDrugID
WHERE
om.StatusCode IN ('F', 'C')
AND o.OrganismGroupID <> -1
AND od.OrganismDrugGroupID <> -1
AND (om.LabType <> 'screen' OR om.LabType IS NULL);
IF(@recordCount > 0)
print 'records';