WHILE 迴圈

SQL Server 中級

Ginger Grant

Instructor

在 T-SQL 使用變數

  • 需要變數來設定數值

    DECLARE @variablename data_type

    • 必須以 @ 字元開頭
SQL Server 中級

T-SQL 中的變數型別

  • VARCHAR(n):可變長度文字欄位
  • INT:整數,範圍 -2,147,483,647 到 +2,147,483,647
  • DECIMAL(p ,s)NUMERIC(p ,s)
    • p:將儲存的小數位數總數(小數點左右合計)
    • s:將儲存在小數點右側的小數位數
SQL Server 中級

在 T-SQL 宣告變數

-- 將 Snack 宣告為長度 10 的 VARCHAR
DECLARE @Snack VARCHAR(10)
SQL Server 中級

為變數指派數值

-- 宣告變數
DECLARE @Snack VARCHAR(10)
-- 用 SET 指定變數的值
SET @Snack = 'Cookies'
-- 顯示數值
SELECT @Snack
+--------------------+ 
|(No column name)    | 
+--------------------+
|Cookies             |
+--------------------+
-- 宣告變數
DECLARE @Snack VARCHAR(10)
-- 用 SELECT 指派數值
SELECT @Snack = 'Candy'
-- 顯示數值
SELECT @Snack
+--------------------+ 
|(No column name)    | 
+--------------------+
|Candy               |
+--------------------+
SQL Server 中級

WHILE 迴圈

  • WHILE 會判斷條件為 true 或 false

  • WHILE 後應有一行關鍵字 BEGIN

  • 接著放入要執行的程式碼,直到 WHILE 迴圈的條件為 true

  • 程式碼之後加上關鍵字 END

  • 使用 BREAK 可跳出迴圈

  • 使用 CONTINUE 可繼續下一輪

SQL Server 中級

T-SQL 的 WHILE 迴圈(I)

-- 將 ctr 宣告為整數
DECLARE @ctr INT
-- 指派 1 給 ctr
SET @ctr = 1

-- 指定 WHILE 迴圈的條件 WHILE @ctr < 10
-- 開始在 WHILE 內執行程式碼 BEGIN -- 持續遞增 @ctr 的值 SET @ctr = @ctr + 1 -- 結束 WHILE 迴圈 END -- 檢視迴圈後的值 SELECT @ctr
+--------------------+ 
|(No column name)    | 
+--------------------+
|10                  |
+--------------------+
SQL Server 中級

T-SQL 的 WHILE 迴圈(II)

-- 將 ctr 宣告為整數
DECLARE @ctr INT
-- 指派 1 給 ctr
SET @ctr = 1
-- 指定 WHILE 迴圈的條件
WHILE @ctr < 10
    -- 開始在 WHILE 內執行程式碼
    BEGIN
       -- 持續遞增 @ctr 的值
       SET @ctr = @ctr + 1
       -- 檢查 ctr 是否等於 4
       IF @ctr = 4
           -- 當 ctr 等於 4,迴圈中斷
           BREAK
       -- 結束 WHILE 迴圈
    END
SQL Server 中級

一起來練習吧!

SQL Server 中級

Preparing Video For Download...