Megosztás a következőn keresztül:


HA... ELSE (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Feltételeket ír elő egy Transact-SQL utasítás végrehajtására. A kulcsszót és annak feltételét követő IF Transact-SQL utasítás akkor lesz végrehajtva, ha a feltétel teljesül: a logikai kifejezés ad vissza TRUE. Az opcionális ELSE kulcsszó egy másik Transact-SQL utasítást vezet be, amely akkor lesz végrehajtva, ha a IF feltétel nem teljesül: a logikai kifejezés visszaadja FALSE.

Transact-SQL szintaxis konvenciók

Syntax

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

Arguments

boolean_expression

Olyan kifejezés, amely visszaadja TRUE vagy FALSE. Ha a logikai kifejezés utasítást SELECT tartalmaz, az SELECT utasítást zárójelben kell megadni.

{ sql_statement | statement_block }

Bármely Transact-SQL utasítás vagy utasításcsoportozás, amely utasításblokk használatával van definiálva. Ha nem használ utasításblokkot, a feltétel vagy IF a ELSE feltétel csak egy Transact-SQL utasítás teljesítményét befolyásolhatja.

Utasításblokk meghatározásához használja a folyamatvezérlési kulcsszavakat BEGIN és ENDa .

Remarks

A IF...ELSE szerkezet kötegekben, tárolt eljárásokban és alkalmi lekérdezésekben is használható. Ha ezt a szerkezetet egy tárolt eljárásban használják, általában egy paraméter meglétét kell tesztelni.

IF a tesztek beágyazhatók egy másik vagy egy IFELSEmásik után. A beágyazott szintek számának korlátja a rendelkezésre álló memóriától függ.

Examples

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

További példákért lásd az ELSE (HA... MÁS).

Példák: Azure Synapse Analytics and Analytics Platform System (PDW)

Az alábbi példa azt határozza IF...ELSE meg, hogy két válasz közül melyik jelenjen meg a felhasználónak a táblázat egyik elemének DimProduct súlya alapján.

-- 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;