SQL學習之計算欄位的用法與解析

2021-09-08 19:11:58 字數 1355 閱讀 6084

一、計算字段

1、儲存在資料庫表中的資料一般不是應用程式所需要的格式。大多數情況下,資料表中的資料都需要進行二次處理。下面舉幾個例子。

(1)、我們需要乙個字段同時顯示公司名和公司位址,但這兩個資訊儲存在不同表的列中。

(3)、列資料是大小寫混合的,但報表程式需要把所有的程式按大寫表示出來。

(4)、物品訂單表儲存物品的**和數量,不儲存每個物品的總**,但是列印發票需要物品的總**。上述的例子中,儲存在表中的資料都不是應用程式所需要的,我們需要從資料中檢索出來、並轉換、計算或格式化過的資料。而不是檢索出來,再到客戶端進行初始化。

這時,計算欄位就可以派上用場了,計算欄位並不實際存在與資料表中,計算欄位是執行在select語句內建立的。

字段:字段基本上與列的疑似相同,經常互換使用,不過資料庫列一般稱為列,而術語字段通常與計算字段一起使用。

這裡需要注意:只有資料庫的知道select語句中哪些列是實際的表列,那些列是計算字段。從客戶端(如web應用程式)來看,計算欄位的資料與其他列的資料的返回方式相同。

在sql語句內可完成許多資料轉換和格式化工作都可以直接在客戶端應用程式中完成。但一般來說在資料庫伺服器上完成這些操作比在客戶端中完成要快很多!

2、拼接字段

將兩個或多個欄位的值拼接到一起組成乙個字段。**如下

select

*from dbo.student

現在有乙個需求,乙個報表需要乙個欄位包student_deatils含學生表的姓名,年齡,性別,作為學生的基本資訊,下面是解決**:

select sname +'(

'+s***+',

'+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,完成需求!

SQL語句之 計算字段 分組

五 計算字段 1 拼接字段 mysql 使用函式concat sqlserver 使用加號 oracle 使用 使用別名as select concat vend name,vend country,as vend title from vendors order by vend name 2 算數...

SQL語句之計算次數出現最多的值

需求,計算20號部門員工工資出現的次數 使用count 函式 sql select sal,count time from emp where deptno 20 group by sal sal time 2975 1 1100 1 3000 2 800 1 sql 12 3456 78910 計...

sql必知必會學習記錄(七) 建立計算字段

拼接字段 在mysql的select語句中,可使用concat 函式來拼接兩個列。select concat vend name,vend country,from vendors order by vend name 在mysql 中,rtrim 函式可以去掉值右邊的所有空格。還支援ltrim 去...