1. 程式人生 > >計算欄位的其他用途

計算欄位的其他用途

我們不僅能在SELECT語句中使用計算欄位,我們同樣可以在進行資料過濾、資料刪除以及資料更新的時候使用計算欄位,下面我們舉幾個例子。

計算處於合理工資範圍內的員工我們規定一個合理工資範圍:上限為年齡的1.8倍加上5000元,下限為年齡的1.5倍加上2000元,介於這兩者之間的即為合理工資。我們需要查詢所有處於合理工資範圍內的員工資訊。因此編寫如下的SQL語句:


SELECT * FROM T_Employee WHERE Fsalary BETWEEN Fage*1.5+2000 AND Fage*1.8+5000 

這裡我們在BETWEEN……AND……語句中使用了計算表示式。執行完畢我們就能在輸出結果中看到下面的執行結果:

查詢“工資年齡指數”

我們定義“工資年齡指數”為“工資除以年齡”。我們需要查詢“工資年齡指數”的最高值和最低值。因此編寫如下的SQL語句:


SELECT MAX(FSalary/FAge) AS MAXVALUE,MIN(FSalary/FAge) AS MINVALUE FROM T_Employee 

這裡我們在MAX、MIN函式中使用了計算欄位。執行完畢我們就能在輸出結果中看到

下面的執行結果:


MAXVALUE             MINVALUE

332.0000000000000 54.5454545454545

年齡全部加1

新的一年到來了,系統需要自動將員工的年齡全部加1。這個工作如果使用程式碼來完成的話會是這樣:


result = executeQuery(“SELECT * FROM T_Employee”);

    for(i=0;i<result.count;i++)

    {

        age = result[i].get(“FAge”);

        number = result[i].get(“FNumber”);

        age=age+1; executeUpdate(“UPDATE T_Employee SET FAge=”+age+” WHERE FNumber=”+number); } 

這種方式在資料量比較大的時候速度是非常慢的,而在UPDATE中使用計算欄位則可以非常簡單快速的完成任務,編寫下面的SQL語句:

UPDATE T_Employee SET FAge=FAge+1

這裡在SET子句中採用計算欄位的方式為FAge欄位設定了新值。

執行完畢後執行SELECT * FROM T_Employee來檢視修改後的資料: