我有一個以下的存儲過程。我有變量@PercentCleared
。任何其他方式,以避免如果條件
IF @PercentCleared <= 70
然後我必須減去PercentCleared-10
否則就這樣使用。你可以請教我正確的做法嗎?
DECLARE @PercentCleared INT
DECLARE @TenPercent int
SET @TenPercent = 10
IF(@PercentCleared <=70)
BEGIN
SELECT
@I, dbo.tblV.VegTypeCode, dbo.tblV.VegTypeName
FROM
dbo.tblVegetationType
INNER JOIN
dbo.tblVegFormationLink ON dbo.tblV.VegTypeID = dbo.tblVegFormationLink.VegTypeID
WHERE
dbo.tblVegetationType.PercentageCleared >=(@PercentCleared - @TenPercent)
WHERE
a.VegTypeID = dbo.tblVegetationType.VegTypeID
AND dbo.tblVegetationType.VegTypeID <> (SELECT VegTypeID
FROM @EcosystemCredits eco
WHERE eco.theID = @I)
END
ELSE IF
BEGIN
SELECT
@I, dbo.tblV.VegTypeCode, dbo.tblV.VegTypeName
FROM
dbo.tblVegetationType
INNER JOIN
dbo.tblVegFormationLink ON dbo.tblV.VegTypeID = dbo.tblVegFormationLink.VegTypeID
WHERE
dbo.tblVegetationType.PercentageCleared >[email protected]
WHERE
a.VegTypeID = dbo.tblVegetationType.VegTypeID
AND dbo.tblVegetationType.VegTypeID <> (SELECT VegTypeID
FROM @EcosystemCredits eco WHERE eco.theID = @I)
End
這很難讀。你可以重新格式化更清晰嗎? (我很抱歉,但我沒有能力爲你做這件事。)@ TenPercent這個名字並不是一個很好的選擇。要麼寫10或者給它一個更有意義的名字。 – 2014-12-05 00:20:11
對不起喬納森,我現在正在格式化 – Usher 2014-12-05 00:23:05
'else if'是否只是'其他'? 'else if'的'if'部分沒有條件。雖然這是瑣事。其餘的更容易閱讀。你不能在SELECT語句之一中使用'CASE @PercentCleared WHEN> = 70 THEN @PercentCleared - @TenPercent ELSE @PercentCleared END'來代替'@ PercentCleared'條件,所以你不需要其他或外部IF/ELSE。 – 2014-12-05 00:33:31