Udostępnij za pomocą


JEŚLI... INNE (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Nakłada warunki na wykonanie instrukcji Transact-SQL. Instrukcja Transact-SQL zgodna ze IF słowem kluczowym i jego warunkiem jest wykonywana, jeśli warunek jest spełniony: wyrażenie warunkowe zwraca wartość TRUE. Opcjonalne ELSE słowo kluczowe wprowadza inną instrukcję Transact-SQL wykonywaną, gdy IF warunek nie jest spełniony: wyrażenie logiczne zwraca wartość FALSE.

Transact-SQL konwencje składni

Syntax

IF boolean_expression
    { sql_statement | statement_block }
[ ELSE
    { sql_statement | statement_block } ]

Arguments

boolean_expression

Wyrażenie zwracające TRUE wartość lub FALSE. Jeśli wyrażenie logiczne zawiera instrukcję SELECT , SELECT instrukcja musi być ujęta w nawiasy.

{ sql_statement | statement_block }

Każda instrukcja Transact-SQL lub grupowanie instrukcji zgodnie z definicją przy użyciu bloku instrukcji. Jeśli blok instrukcji nie jest używany, IF warunek or ELSE może mieć wpływ na wydajność tylko jednej instrukcji Transact-SQL.

Aby zdefiniować blok instrukcji, użyj słów kluczowych BEGIN control-of-flow i END.

Remarks

Konstrukcja IF...ELSE może być używana w partiach, w procedurach składowanych i w zapytaniach ad hoc. Gdy ta konstrukcja jest używana w procedurze składowanej, zwykle należy przetestować istnienie określonego parametru.

IFtesty mogą być zagnieżdżone po innej IF lub następującej .ELSE Limit liczby poziomów zagnieżdżonych zależy od dostępnej pamięci.

Examples

IF DATENAME(weekday, GETDATE()) IN (N'Saturday', N'Sunday')
    SELECT 'Weekend';
ELSE
    SELECT 'Weekday';

Aby uzyskać więcej przykładów, zobacz ELSE (IF... ELSE).

Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)

W poniższym przykładzie użyto IF...ELSE metody do określenia, które z dwóch odpowiedzi mają być wyświetlane użytkownikowi DimProduct na podstawie wagi elementu w tabeli.

-- Uses AdventureWorksDW

DECLARE @maxWeight FLOAT, @productKey INT;

SET @maxWeight = 100.00;
SET @productKey = 424;

IF @maxWeight <= (
        SELECT Weight
        FROM DimProduct
        WHERE ProductKey = @productKey
    )
    SELECT @productKey AS ProductKey,
        EnglishDescription,
        Weight,
        'This product is too heavy to ship and is only available for pickup.' AS ShippingStatus
    FROM DimProduct
    WHERE ProductKey = @productKey;
ELSE
    SELECT @productKey AS ProductKey,
        EnglishDescription,
        Weight,
        'This product is available for shipping or pickup.' AS ShippingStatus
    FROM DimProduct
    WHERE ProductKey = @productKey;