計算欄位的其他用途
阿新 • • 發佈:2018-11-08
我們不僅能在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來檢視修改後的資料: