首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL 基礎控制流程語句完整指南

     編輯:關於SqlServer

SQL 控制流程語句核心概念

在 SQL 程式設計中,控制流程語句是實現複雜業務邏輯的關鍵。掌握這些基礎語句,能讓你編寫出更靈活、更強大的資料庫程式碼。

1. IF...ELSE 條件判斷語句

IF...ELSE 是最基礎的條件控制結構,根據布林表達式的結果執行不同的程式碼區塊。

IF 布林表達式
BEGIN
    {SQL 語句或語句區塊}
END
ELSE
BEGIN
    {SQL 語句或語句區塊}
END

應用場景:根據條件動態執行不同的查詢或更新操作。

2. BEGIN...END 語句區塊

用於將多條 SQL 語句封裝成一個邏輯單元,常配合 IF、WHILE 等控制語句使用。

BEGIN
    {sql 語句或語句區塊}
END

3. WHILE 迴圈與 BREAK、CONTINUE

WHILE 迴圈支援重複執行,配合 BREAK 跳出迴圈、CONTINUE 跳過本次迴圈。

範例:計算 1 到 10 之間奇數的總和

DECLARE @I smallint, @sum smallint
SELECT @i = 0, @sum = 0
WHILE @i < 10
BEGIN
    SELECT @i = @i + 1
    IF @i > 10 BREAK
    IF (@i % 2) = 0 CONTINUE
    ELSE SELECT @sum = @sum + @i
END
SELECT @sum

4. WAITFOR 延遲執行

控制語句在特定時間或延遲指定間隔後執行。

WAITFOR { DELAY 'time' | TIME 'time' }
  • WAITFOR TIME '10:00' — 在上午 10:00 執行
  • WAITFOR DELAY '1:00' — 延遲 1 小時後執行

5. RETURN 返回狀態

從預存程序或批次中返回整數狀態碼:RETURN [整數表達式]

6. CASE 條件表達式

簡單 CASE 表達式

比較單一運算式與多個值:

CASE 運算式
    WHEN 運算式1 THEN 結果1
    WHEN 運算式2 THEN 結果2
    ...
    ELSE 預設結果
END

範例:

SELECT 
    name = CONVERT(varchar(15), au_lname),
    contract = CASE contract 
        WHEN 0 THEN 'invalid contract.'
        WHEN 1 THEN 'valid contract.'
    END
FROM authors

搜尋型 CASE 表達式

評估一組布林運算式:

CASE
    WHEN 布林運算式1 THEN 結果1
    WHEN 布林運算式2 THEN 結果2
    ...
    ELSE 預設結果
END

CASE 相關函數

  • COALESCE(運算式1, 運算式2, ...) — 返回第一個非 NULL 值
  • NULLIF(運算式1, 運算式2) — 兩運算式相等時返回 NULL,否則返回第一個運算式
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved