Mulighed for at parameter ikke har en værdi i stored procedure
Hej,Jeg har 2 parametre der kommer ind i systemet (er igang med at søge igennem en tabel). Nu ved jeg ikke altid om der er noget i én af parametrene, i begge eller i ingen af dem, hvordan håndterer jeg dette?
Min kode:
ALTER PROCEDURE [dbo].[GetCompanySearch]
@SearchString AS NVARCHAR(200) = '',
@companyCategory AS NVARCHAR(200) = ''
AS
BEGIN
SELECT tCompany.fCompanyPId, tCompany.fCompanyName, tDimDetail_1.fDimDetailText AS CompanyCategory
FROM tDimDetail AS tDimDetail_2 INNER JOIN
tDimZipCodes ON tDimDetail_2.fDimDetailPId = tDimZipCodes.fDimDetailFId
RIGHT OUTER JOIN tCompany INNER JOIN
tDimDetail ON tCompany.fDimDetailCustomF1Id = tDimDetail.fDimDetailPId
INNER JOIN tDimDetail AS tDimDetail_1 ON tCompany.fDimDetailCustomF2Id =
tDimDetail_1.fDimDetailPId INNER JOIN tContact ON
tCompany.fDimDetailCustomF4Id = tContact.fContactPId ON
tDimZipCodes.fZipCodePId = tCompany.fZipCodeFId
WHERE ((CAST(fCompanyPId AS VARCHAR(200)) LIKE '%' + @SearchString + '%') OR (fCompanyName LIKE '%' + @SearchString + '%')) AND
(tDimDetail_1.fDimDetailText = @companyCategory)
END
Altså det jeg vil, er hvis der i parameteren @SearchString ikke kommer noget med ind (''), skal den ignorere de første to dele i min WHERE statement og kun tage sig af den 3. (sidste del). Hvis der i parameteren @companyCategory skal den ignorere den 3. (sidste del)
Som I kan se har jeg forsøgt mig med at sætte en default på (har forsøgt både med null og med '') Men jeg får ingen rækker ud, hvis jeg kun sætter noget i f.eks. @SearchString. Den skulle ellers give mig utallige rækker ud
mvh
simsen :-)