Вложение if-операторов внутри хранимой процедуры

.equals() сравнивает данные в классе (при условии, что функция реализована). == сравнивает местоположения указателя (расположение объекта в памяти).

== возвращает true, если оба объекта (NOT TALKING OF PRIMITIVES) указывают на экземпляр SAME. .equals() возвращает true, если два объекта содержат одни и те же данные equals() Versus == в Java

Это может вам помочь.

0
задан Prafulla 25 February 2019 в 12:31
поделиться

2 ответа

Поскольку вы проверяете одну переменную на соответствие нескольким условиям, вам следует использовать что-то вроде этого. Здесь будет выполнен блок кода, где условие истинно, а другие блоки будут игнорироваться.

IF (@ParentVar1 Condition1)
Begin
       IF(@Var1 Condition1)
             BEGIN
              /*Your Code Goes here*/
             END

       ELSE IF(@Var1 Condition2)
              BEGIN
                /*Your Code Goes here*/ 
              END 
       ELSE IF(@Var1 Condition2)
              BEGIN
                /*Your Code Goes here*/ 
              END 
       ELSE IF(@Var1 Condition2)
              BEGIN
                /*Your Code Goes here*/ 
              END 
       ELSE      --<--- Default Task if none of the above is true
             BEGIN
               /*Your Code Goes here*/
             END
End
0
ответ дан Mukesh Arora 25 February 2019 в 12:31
поделиться

Если ваши операторы вставки совпадают, вы можете использовать следующий фрагмент кода:

DECLARE @Ugedagnr VARCHAR(10) = '1',
    @ModulID VARCHAR(10),
    @ModulID2 VARCHAR(10);

IF @Ugedagnr = '1'
BEGIN
    IF @Ugedagnr = '1'
    BEGIN
        SET @ModulID = 'S1';
        SET @ModulID2 = 'S2';
    END;

    IF @Ugedagnr = '2'
    BEGIN
        SET @ModulID = 'S5';
        SET @ModulID2 = 'S6';
    END;

    IF @Ugedagnr = '3'
    BEGIN
        SET @ModulID = 'S9';
        SET @ModulID2 = 'S10';
    END;
    IF @Ugedagnr = '4'
    BEGIN
        SET @ModulID = 'S13';
        SET @ModulID2 = 'S14';
    END;
    IF @Ugedagnr = '5'
    BEGIN
        SET @ModulID = 'S17';
        SET @ModulID2 = 'S18';
    END;

    SELECT @ModulID, @ModulID2


    BEGIN TRANSACTION
                    @ModulID = 'S9'
                    @ModulID2 = 'S10'
                    INSERT INTO Undervisning (ModulID, SkemaDato, LokaleID, HoldID, FagID, LaererID, Aar, Uge)
                    VALUES (@ModulID, GETDATE(), @lokaleID, @holdID, @fagID, @laererID, @CurrentYear, @WeekNumber)
                    INSERT INTO Undervisning (ModulID, SkemaDato, LokaleID, HoldID, FagID, LaererID, Aar, Uge)
                    VALUES (@ModulID2, GETDATE(), @lokaleID, @holdID, @fagID, @laererID, @CurrentYear, @WeekNumber) 
    COMMIT TRANSACTION
END;
0
ответ дан StepUp 25 February 2019 в 12:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: