Stored Procedure: JOIN kun hvis variabel =
Jeg er lidt i tvivl om hvordan jeg lettest bygger det her op i en stored procedure.Jeg har en stored procedure, som f.eks. har variablel @CurrentMenuLevel. I SQL kaldet henter jeg en masse produkter og vil så kun lave en JOIN til Menu tabellen hvis @CurrentMenuLevel > 0
Er det muligt at lave en "if" sætning inde i selve SQLen så jeg ikke behøver have alt det andet SQL stående to gange?
Følgende fungere f.eks. ikke, men viser meget godt hvad det er jeg gerne vil. Se ved "IF @CurrentMenuLevel > 0":
----------------------------------------------
SELECT
ShopProductVersion.ProductID,
ShopProductDescription.ProductName,
ShopProductDescription.ProductDescriptionShort
FROM
ShopProduct
INNER JOIN
ShopProductDescription
ON
ShopProduct.ProductID = ShopProductDescription.ProductID
INNER JOIN
ShopProductVersion
ON
ShopProduct.ProductID = ShopProductVersion.ProductID
IF @CurrentMenuLevel > 0
BEGIN
INNER JOIN ShopMenuRelation
ON
ShopMenuRelation.MenuItemID = @CurrentMenuLevel
AND
ShopMenuRelation.ProductID = ShopProduct.ProductID
END
WHERE
(ShopProduct.Active = 1)
GROUP BY
ShopProductVersion.ProductID,
ShopProductDescription.ProductName,
ShopProductDescription.ProductDescriptionShort