前面我們說了一下,預存程序和視圖,
下面我們來簡單的瞭解下資料庫中 while ,case ,if ..else 這幾個對象
1 while
while 是根據它接到bool值是true還是false 來執行重複操作的一個命令對象。
文法:
while 條件
begin
.....
end
樣本
DECLARE @start INT
set @start=1
WHILE @start<=10
BEGIN
PRINT @start
SET @start=@start+1
END
2 case
case 根據一套邏輯返回一個特定的值,
DECLARE @value INT
SET @value=1
SELECT CASE @value
WHEN 1 THEN 'guanbi'
WHEN 2 THEN 'dakai'
END
上面這個例子返回的結果是,如
而下面這個case 語句返回則是,如
DECLARE @value INT
SET @value=1
SELECT CASE @value
WHEN 1 THEN '關閉'
WHEN 2 THEN '開啟'
END
大家會注意看到,如果 THEN 後面加的是中文 ,則返回的結果是“?” ,也許別的版本資料庫不會出現這種情況,我沒有試過,本人用的是sql server 2005 ,
3 if ...else
這個相對上面那兩個大家應該會陌生吧,如果條件,則執行該條件的sql 語句,反則執行下一個條件的sql 語句,下面我們還是拿一個簡單例子來說明這一點。
文法
if 條件
要執行的語句
else
要執行的語句
....
IF 4>1
PRINT 'true'
ELSE
PRINT 'false'
執行結果是 true
複雜一點的,
DECLARE @i INT
SET @i=1
WHILE (@i<=(SELECT COUNT(*) FROM chengji))
BEGIN
SELECT xingming
,fenshu
,CASE fenshu
WHEN 100 THEN 'youxiu'
WHEN 60 THEN 'hege'
WHEN 30 THEN 'buhege'
END
FROM chengji
SET @i=@i+1
END
4 try ... catch ...
樣本:
BEGIN TRY
DECLARE @X INT
-- Divide by zero to generate Error
SET @X = 1/0
PRINT 'Command after error in TRY block'
END TRY
BEGIN CATCH
PRINT 'Error Detected'
END CATCH
到這裡,這幾個簡單的資料庫物件介紹完了,當然這些都是皮毛而已,雖然是這樣,但這也是基礎,再複雜的指令碼都是多個簡單指令碼的組成的,被稱為複合的簡單性,只要我們把這些最簡單一點點的積聚起來,我們也能像他們一樣,寫出令人另眼相看的sql 語句.
初學者:小斌