Aracılığıyla paylaş


EĞER... ELSE (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

Transact-SQL deyiminin yürütülmesine koşullar uygular. Bir IF anahtar sözcüğü izleyen Transact-SQL deyimi ve koşul karşılanırsa koşulu yürütülür: Boole ifadesi döndürür TRUE. İsteğe bağlı ELSE anahtar sözcük, koşul karşılandığında yürütülen IF başka bir Transact-SQL deyimini tanıtır: Boole ifadesi döndürür FALSE.

Transact-SQL söz dizimi kuralları

Syntax

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

Arguments

boolean_expression

veya TRUEdöndüren FALSE bir ifade. Boole ifadesi bir SELECT deyim içeriyorsa, SELECT deyimi parantez içine alınmalıdır.

{ sql_statement | statement_block }

Deyim bloğu kullanılarak tanımlanan herhangi bir Transact-SQL deyimi veya deyim gruplandırma. Deyim bloğu kullanılmadığı sürece, IF veya ELSE koşulu yalnızca bir Transact-SQL deyiminin performansını etkileyebilir.

Bir deyim bloğu tanımlamak için, ve akış denetimi anahtar sözcüklerini BEGINENDkullanın.

Remarks

Yapı IF...ELSE toplu işlemlerde, saklı yordamlarda ve geçici sorgularda kullanılabilir. Bu yapı bir saklı yordamda kullanıldığında, genellikle bir parametrenin varlığını test etmek için kullanılır.

IF testler, başka bir IF taneden sonra veya bir ELSEsonrasında iç içe yerleştirilebilir. İç içe düzey sayısı sınırı kullanılabilir belleğe bağlıdır.

Examples

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

Daha fazla örnek için bkz . ELSE (EĞER... ELSE) öğesini seçin.

Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)

Aşağıdaki örnek, tablodaki bir öğenin IF...ELSE ağırlığına göre kullanıcıya gösterilecek iki yanıt olduğunu belirlemek için kullanırDimProduct.

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