Aracılığıyla paylaş


IF... ELSE (Transact-SQL)

Koşullara göre yürütülmesini getirir bir Transact-SQL deyim. The Transact-SQL deyim that follows an IF keyword and its condition is executed if the condition is satisfied: Boole ifadesi DOğRU sonucunu verir. Isteğe bağlı ELSE anahtar sözcüğü başka tanıtır. Transact-SQL IF koşulu yok gerçekleşti, çalıştırılan deyim: Boole ifade YANLıŞ değerini verir.

Topic link iconTransact-SQL sözdizimi kuralları

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

Bağımsız değişkenler

  • Boolean_expression
    DOĞRU veya YANLıŞ döndüren ifade belirtilir.SELECT deyimiBoole deyimin bir ifade içerir, parantez içine alınmalıdır.

  • { sql_statement| statement_block }
    Herhangi bir iş Transact-SQL deyimi veya bir deyim öbeği kullanarak tanımlanan gruplandırma deyimi. Bir deyim blok olmadığı sürece, EğER kullanılan veya ELSE koşulu, tek performansını etkileyebilir Transact-SQL ifade.

    Bir deyim blok tanımlamak için , BEGIN ve END akış denetimi anahtar sözcüklerini kullanın.

Remarks

Bir IF... ELSE yapı, toplu işlem, saklı yordamlar ve ad hoc sorgularda kullanılabilir.Bu yapıyı saklı yordam içinde kullanıldığında, bazı parametre varlığı için sınamak için sık kullanılır.

Eğer sınamaları sonra başka bir IF veya bir ELSE aşağıdaki iç içe kullanılabilir.Iç içe düzey sayısı sınırı, kullanılabilen belleğe bağlıdır.

Örnekler

Aşağıdaki örnek kullanır. IF…ELSE çıktı ile uspGetList saklı yordam. Bu saklı yordam, tanımlı Saklı yordamlar oluşturma.Bu örnekte, saklı yordam bisikleti ' $'den küçük bir liste fiyatını içeren bir listesini verir.700. Bu ilk neden olur PRINT yürütülecek deyim.

DECLARE @compareprice money, @cost money 
EXECUTE Production.uspGetList '%Bikes%', 700, 
    @compareprice OUT, 
    @cost OUTPUT
IF @cost <= @compareprice 
BEGIN
    PRINT 'These products can be purchased for less than 
    $'+RTRIM(CAST(@compareprice AS varchar(20)))+'.'
END
ELSE
    PRINT 'The prices for all products in this category exceed 
    $'+ RTRIM(CAST(@compareprice AS varchar(20)))+'.'

Daha fazla örnek için bkz: ELSE (IF... ELSE) (Transact-SQL).