У меня есть следующая хранимая процедура. Я имею переменную @PercentCleared
.Любой другой способ избежать, если условие else
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, либо укажите более значимое имя. –
Извините, Джонатан, я переформатирую сейчас – Usher
Является ли «else if» предназначаться просто «еще»? Не существует условия для «if» части «else if». Это пустяки. Остальное легче читать сейчас. Вы не можете использовать что-то вроде 'CASE @PercentCleared WHEN> = 70 THEN @PercentCleared - @TenPercent ELSE @PercentCleared END' вместо условия' @ PercentCleared' в одном из операторов SELECT, поэтому вам тогда не нужно другого или внешнего IF/ELSE. –