一、計算字段
1、存儲在數據庫表中的數據一般不是應用程序所需要的格式。大多數情況下,數據表中的數據都需要進行二次處理。下面舉幾個例子。
(1)、我們需要一個字段同時顯示公司名和公司地址,但這兩個信息存儲在不同表的列中。
(2)、省份、城市、郵政編碼存儲在不同的列中(大多數情況下是這樣),但郵件標簽打印程序需要把它們作為一個有恰當順序、格式的字段打印出來。
(3)、列數據是大小寫混合的,但報表程序需要把所有的程序按大寫表示出來。
(4)、物品訂單表存儲物品的價格和數量,不存儲每個物品的總價格,但是打印發票需要物品的總價格。上述的例子中,存儲在表中的數據都不是應用程序所需要的,我們需要從數據中檢索出來、並轉換、計算或格式化過的數據。而不是檢索出來,再到客戶端進行初始化。
這時,計算字段就可以派上用場了,計算字段並不實際存在與數據表中,計算字段是運行在SELECT語句內創建的。
字段:字段基本上與列的疑似相同,經常互換使用,不過數據庫列一般稱為列,而術語字段通常與計算字段一起使用。
這里需要注意:只有數據庫的知道SELECT語句中哪些列是實際的表列,那些列是計算字段。從客戶端(如Web應用程序)來看,計算字段的數據與其他列的數據的返回方式相同。
在SQL語句內可完成許多數據轉換和格式化工作都可以直接在客戶端應用程序中完成。但一般來說在數據庫服務器上完成這些操作比在客戶端中完成要快很多!
2、拼接字段
將兩個或多個字段的值拼接到一起組成一個字段。代碼如下
select * from dbo.student
現在有一個需求,一個報表需要一個字段包student_deatils含學生表的姓名,年齡,性別,作為學生的基本信息,下面是解決代碼:
select sname +'('+ssex+','+CONVERT(varchar,sage)+')' as student_deatils from dbo.student
ok,完成需求
注意:不同的DBMS(數據庫管理系統)使用字符串拼接的操作符不同,Acesss和SQL Server使用的是'+',DB2、Oracle、PostgreSQL、SQLite和Open Office Base使用 '||' 。MySql和MariaDB中必須使用特殊的函數。
3、計算字段進行算術運算
計算字段的另一種常見用途是對檢索出的數據進行算術計算。如下代碼:
select * from tb_order
現在由一個報表程序需要每個訂單的訂單編號、實際價格(單價*折扣)和總價格,解決代碼如下:
select OrderId as 訂單編號,price*quantity as 實際價格,price*quantity*ordercount as 總價格 from dbo.tb_order
ok,完成需求!
轉自:https://www.cnblogs.com/GreenLeaves/p/5813012.html