資料庫 SQL Server Transact SQL ( T-SQL )


註解 :

/* 這是一個 block 的註解 ,
    說明在此
*/

 -- 這是一行註解

變數 :

DECLARE @name nvarchar(40)     -- 區域變數以 @ 為開頭
SET @name = '許景華'                       -- 設定區域變數
SELECT @name = '咕咕'                   -- 用 SELECT 也可拿來設定變數
SELECT @name                                  -- 顯示區域變數的內容

SELECT @@CPU_BUSY                 -- @@CPU_BUSY 為一全域變數 , 全域變數常是系統變數

流程控制 :

在語法的說明中 , 以 [   ] 括起來的表示可有可無 , 以 {   } 表示必須存在 . statement_block 指的是像下列程式以 BEGIN ...... END 夾起來的碼

BEGIN
   @kind_var = SELECT count(*) FROM 產品
    PRINT '產品種類=' + @kind_var
END

Boolean_Expression

(1) IN

IF '主機板' IN ( SELECT 種類 FROM 產品 )
    PRINT '產品的種類有主機板'

(2) IS NULL

IF ( SELECT 員工血型 FROM 員工 WHERE 員工姓名='許景華' ) IS NULL
    PRINT '員工的血型未指定'

(3) ALL

IF 4000 < ALL ( SELECT 價格 FROM 產品 )
    PRINT '所有的產品都很貴 , 超過 4000 元'

(4) ANY

IF 60 > ANY ( SELECT 分數 FROM 第一次小考 )
    PRINT '有人不及格呦'

(5) EXIST

IF EXIST ( SELECT 種類 FROM 產品 WHERE 種類='主機板' )
    PRINT '產品的種類有主機板'

(6) SOME

IF ... ELSE

語法 :

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

IF ( SELECT count(種類) FROM 產品 ) > 10
    BEGIN
        PRINT '超過十種產品'
        SELECT sum(價格) FROM 產品
    END
ELSE
    BEGIN
        PRINT '不滿十種產品'
        SELECT sum(價格) FROM 產品
    END

WHILE

語法 :

WHILE boolean_expression
   
BEGIN
        {sql_statement | statement_block}
        [BREAK]
        {sql_statement | statement_block}
        [CONTINUE]
    END

DECLARE @i int
SET @i=0

WHILE @i<10
    BEGIN
        SET @i = @i + 1
        IF @i % 2 = 0
            PRINT '偶數'
        ELSE
            CONTINUE
    END

CASE

語法 :

CASE input_expression
    WHEN when_expression THEN result_expression
        [...n]
        [ ELSE else_result_expression ]
END

DECLARE @i int , @answer nvarchar(10)
SET @i=2

SET @answer = CASE @i
WHEN 1 THEN 'one'
WHEN 2 THEN 'two'
END

PRINT @answer