本範例介紹以簡便方式異動狀態欄位(Status),網頁上常操作進行說明,
參考來源
|
Javascript
|
說明
|
Web Page
|
javascript:UpdateStatus('財金系', 1);
|
網頁資料為0,按下後傳入並變更為1。
|
資料庫
|
javascript:UpdateStatus('財金系');
|
直接判斷資料庫值,異動為反向值。
|
以下列出參考資料庫現值並直接異動之方法,SQL及說明如下:
方法
|
SQL
|
說明
|
CASE WHEN
|
UPDATE #Dept
SET Status = CASE WHEN Status = 1 THEN 0 ELSE 1 END
--SET Status = 1 --指定異動為1。
WHERE 1=1
AND Dept_Id = '財金系'
|
ü 以CASE WHEN 判斷資料庫現值,若為1則存入0,反之則1。
|
餘數運算
|
UPDATE #Dept
SET Status = (Status +1) % 2 --MSSQL
--SET Status =
MOD(Status +1, 2) --ORACLE
WHERE 1=1
AND
Dept_Id ='財金系'
註: ORACLE使用者請自行改Table Name
|
ü 利用餘數運算,MSSQL用『%』、ORACLE用MOD函數。
|
數學運算
|
UPDATE #Dept
SET Status = 1 - Status
WHERE 1=1
AND
Dept_Id = '財金系'
|
ü 利用數學運算特性,若現值為1,運算後為0(1-1 =0),現值為0,則運算後為1(1-0 =1)。
|
資料產生(以MSSQL為例,ORACLE改為CTAS方式即可)
SELECT '資工系' Dept_Id, 1 Status
INTO #Dept
UNION ALL
SELECT '資科系', 1
UNION ALL
SELECT '財金系', 1
UNION ALL
SELECT '械械系', 0
UNION ALL
SELECT '企管系', 1
沒有留言:
張貼留言