;with companyNotNull as ( SELECT * FROM #Companies WHERE CompanyID = @CompanyID ), companyNull as ( Select CompanyID FROM #CompanyGroups WHERE CompanyGroupID = @CompanyGroupID )SELECT *FROM companyNotNullWHERE @companyID is not nullUNION ALLSELECT *FROM companyNullWHERE @companyID is null
SELECT * FROM #Companies WHERE (@CompanyID IS NULL OR CompanyID = @CompanyID) AND (@CompanyGroupID IS NULL OR CompanyID IN(Select CompanyID FROM #CompanyGroups WHERE CompanyGroupID = @CompanyGroupID))
SELECT Comp.*FROM #Companies AS CompLEFT JOIN #CompanyGroups AS Gr ON Comp.CompanyID = Gr.CompanyIDWHERE Comp.CompanyID = @CompanyID OR GR.CompanyGroupID = @CompanyGroupID