The Wayback Machine - http://web.archive.org/web/20130101162811/http://msdn.microsoft.com:80/zh-tw/library/ms182717(v=sql.90).aspx
Expand Minimize
本主題尚未接受評分 - 為這個主題評分

IF...ELSE (Transact-SQL)

在 Transact-SQL 陳述式的執行上強加條件。如果 IF 關鍵字的條件獲得滿足,就會執行在 IF 關鍵字及其條件之後的 Transact-SQL 陳述式:布林運算式會傳回 TRUE。選擇性的 ELSE 關鍵字導入了另一個在 IF 條件未獲滿足時所執行的 Transact-SQL 陳述式:布林運算式會傳回 FALSE。

主題連結圖示 Transact-SQL 語法慣例


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

這是傳回 TRUE 或 FALSE 的運算式。如果布林運算式包含 SELECT 陳述式,則這個 SELECT 陳述式必須括在括號中。

{ sql_statement| statement_block }

這是藉由使用陳述式區塊加以定義的任何 Transact-SQL 陳述式或陳述式分組。除非使用陳述式區塊,否則,IF 或 ELSE 條件只會影響一個 Transact-SQL 陳述式的效能。

若要定義陳述式區塊,請使用流程控制關鍵字 BEGIN 和 END。

您可以在批次、預存程序和特定查詢中使用 IF...ELSE 建構。當在預存程序中使用這個建構時,經常會測試某個參數是否存在。

您可以在 IF 或 ELSE 之後,進行巢狀的 IF 測試。巢狀層級數目的限制,會隨著可用的記憶體而不同。

下列範例會使用 IF…ELSE 和 uspGetList 預存程序的輸出。這個預存程序定義在建立預存程序中。在這個範例中,預存程序會傳回標價小於 $700 的自行車清單。這會造成執行第一個 PRINT 陳述式。

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)))+'.'
本文對您有任何幫助嗎?
(剩餘 1500 個字元)

社群新增項目

新增
© 2013 Microsoft. 著作權所有,並保留一切權利。