久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

SQL server中常見的函數類型有哪些

173次閱讀
沒有評論

共計 3817 個字符,預計需要花費 10 分鐘才能閱讀完成。

這篇文章主要介紹了 SQL  server 中常見的函數類型有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。

既然是高級查詢,那么使用函數也將是必不可少的,常見的函數類型有以下幾種:

常見的高級查詢語法舉例:

顯示 test 表中所有運維工程師的姓名和基本工資,要求以下格式:
運維工程師 XXX 的基本工資是:XXXXX 元。
語法格式如下:

select 運維工程師 + 姓名 + 的基本工資是: +CAST(基本工資 as varchar(10))+ 元
from test where 職務 = 運維工程師

顯示距離當前 10 天之后的日期和時間:

select DATEADD(DD ,10,GETDATE())

顯示 test 表中所有人的姓名和年齡:

select 姓名, DATEDIFF(YY, 出生日期,GETDATE()) 年齡 from test

顯示 test 表中所有 90 后員工的姓名和出生年份:

select 姓名,DATENAME(YY, 出生日期) 出生年份 from employee
where 出生日期 between 1990-01-01 and 1999-12-31

聚合函數與分組查詢:

聚合函數能夠基于列進行計算,并返回單個值,分組查詢是指將查詢結果按條件分組,然后使用聚合函數返回每個組的匯總信息,分組查詢一般是用來滿足統計需求的。

常用的聚合函數有:SUM()、AVG()、MAX()、M I N()、COUNT()。

SUM():用來返回表達式中所有數值的總和,它只能用于數字類型的列,不能匯總字符、日期等。

如:查詢 test 表中所有員工基本工資的總和

select SUM(基本工資) 總工資 from  test

AVG():用來返回表達式中所有數值的平均值,它也只能用于數字類型的列。

查詢 test 表中所有員工的平均基本工資

select AVG(基本工資) 平均工資 from  test

MAX()、M I N():前者用來返回表達式中的最大值,后者用來返回表達式中的最小值。它們都可以用于數字型、字符型及日期 / 時間類型的列。

如:查詢 test 表中的最高工資和最低工資:

select MAX(基本工資) 最高工資,MIN(基本工資) 最低工資 from  test

COUNT():返回表達式中非空值的技術,可以用于數字和字符類型的列,也可使用星號 * 作為 COUNT()函數的表達方式,使用星號 * 可以不必指定特定的列而計算所有的行數。

查詢 test 表中全部行數:

select COUNT(*) from test

查詢 test 表中所有 90 后的人數:

select COUNT(出生日期) 90 后人數 from test
where 出生日期 = 1990-01-01 and 出生日期 = 1999-12-31

分組查詢:就是將表中的數據通過 GROUP  BY 的子句分類組合,再根據需要得到要統計的信息。如果需要對分組進行篩選,只顯示滿足限定條件的組,需要時用 HAAVING 子句。

查詢 test 表中每個職務的平均工資:
select 職務,AVG(基本工資)   職務平均工資 from test  group by 職務

查詢 test 表中平均工資小于 10000 的職務:

select 職務,AVG(基本工資) 平均工資 from test  group by 職務 having AVG(基本工資) 10000

當 group  by   子句中使用 having 子句時,查詢結果只返回滿足 having 條件的組。在一個 T -SQL 語句中可以有 where 子句和 having 子句,having 子句與 where 子句類似,均用于設置限定條件。二者作用的區別如下:

①:where 子句的作用是在對分組查詢結果進行分組之前,根據 where 條件篩選數據,條件中不能包含聚合函數。
②:having 子句的作用是在分組之后篩選滿足條件的組,條件中經常包含聚合函數,也可以使用多個分組標準進行分組。

查詢 test 表中平均工資小于 10000 的職務,前提是員工張三不計算在內:

 select  職務,AVG(基本工資)  平均工資  from employee
 where  姓名!= 張三 
 group by  職務  having AVG(基本工資) 10000

查詢 test 表中所有人的平均工資,用 CEILING() 取整

select CEILING(AVG( 基本工資)) 平均工資 from test

函數的綜合應用:

查詢未滿 30 歲的員工的生日和年齡,并且計算出距離 30 歲的天數,最后用字符串拼接顯示結果:

①:查詢正確的結果

select  姓名, 出生日期,DATEDIFF(YY, 出生日期,GETDATE())  年齡,
 DATEDIFF(DD,GETDATE(),DATEADD(YY,30, 出生日期))  距離三十歲的天數
 from test
 where DATEDIFF(YY, 出生日期,GETDATE()) =30
 order by  出生日期 

②將結果用字符串拼接:

select  員工 + 姓名 + 的生日是: +CONVERT(varchar(10), 出生日期,111)+
  , 現在年齡是 +CAST(DATEDIFF(YY, 出生日期,GETDATE()) AS varchar(10))
 + 歲 + , 距離三十歲還有 +
 CAST( DATEDIFF(DD,GETDATE(),DATEADD(YY,30, 出生日期)) AS varchar(10))+ 天 
 from employee
 where DATEDIFF(YY, 出生日期,GETDATE()) =30
 order by  出生日期 

最終查詢顯示結果如下圖所示:

多表查詢的案例:
案例①
使用 T -SQL 實現多表查詢(內聯接、左外聯接、右外聯接、全聯接 / 完整外聯接):
原表如下:
表 A
表 B

使用內聯接在表 A 和表 B 中使用內聯接查詢學生姓名、學校和職業。(兩種查詢方式)

select a.name  姓名,a.school  學校,b.name,b.job 
from A,B
where a.name=b.name

或:

select a.name  姓名,a.school  學校,b.name,b.job 
from A inner join B on a.name=B.name

查詢結果如下:

使用左外聯接查詢在表 A 和表 B 中使用內聯接查詢學生姓名、學校和職業。

select a.name  姓名,a.school  學校,b.name,b.job 
from A left join B on a.name=B.name

查詢結果如下:

使用右外聯接查詢在表 A 和表 B 中使用內聯接查詢學生姓名、學校和職業。

select a.name  姓名,a.school  學校,b.name,b.job 
from A right join B on a.name=B.name

查詢結果如下:

使用完整外聯接查詢在表 A 和表 B 中使用內聯接查詢學生姓名、學校和職業。

select a.name  姓名,a.school  學校,b.name,b.job 
from A full join B on a.name=B.name

查詢結果如下:

案例②

原表如下:

查詢出廠日期晚于 2011 年 4 月的水果信息。

select * from products
where  種類 = 水果 
and  出廠日期 2011-04-01

查詢結果如下:

分組查詢所有水果、蔬菜、堅果的總成本。

select  種類,SUM(成本) from products
group by  種類 

查詢結果如下:

查詢所有水果的名稱和出廠日期,以特定格式拼接字符串,如:“西瓜的出廠日期是:2017/05/06”

select  種類 + 的出廠日期是: 
+CONVERT(varchar(10), 出廠日期,111)
from products

查詢結果如下:

查詢所有蔬菜的平均成本:

select  種類,AVG(成本)
from products
group by  種類
having  種類 = 蔬菜 

查詢結果如下:

案例②(多表查詢):
原表如下:

表 products 和表 sales

在兩個表中查詢產品的名稱、種類、成本、銷售地點和銷售價格:

select products. 名稱,products. 種類,
products. 成本,sales. 銷售地點,sales. 銷售價格
from products inner join sales 
on products. 名稱 =sales. 名稱 

查詢結果如下:

在兩個表中查詢銷往海南的產品名稱、種類、成本和銷售價格:

select products. 名稱,products. 種類,
products. 成本,sales. 銷售價格
from products inner join sales 
on products. 名稱 =sales. 名稱
and sales. 銷售地點 = 海南 

查詢結果如下:

在兩個表中查詢銷往北京的蔬菜名稱、種類、成本和銷售價格:

select products. 名稱,products. 種類,
products. 成本,sales. 銷售價格
from products inner join sales 
on products. 名稱 =sales. 名稱
and sales. 銷售地點 = 北京 
where  種類 = 蔬菜 

查詢結果如下:

感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“SQL  server 中常見的函數類型有哪些”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計3817字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 色达县| 龙海市| 金寨县| 抚宁县| 米脂县| 正定县| 确山县| 土默特左旗| 冕宁县| 桐梓县| 陆良县| 屏南县| 邵东县| 五寨县| 河池市| 肇庆市| 锡林郭勒盟| 娱乐| 华蓥市| 吕梁市| 江安县| 河北区| 津市市| 绥江县| 青龙| 抚顺市| 永丰县| 石泉县| 个旧市| 都江堰市| 庄浪县| 金昌市| 瓮安县| 兰州市| 象州县| 武陟县| 峡江县| 海淀区| 大方县| 鞍山市| 绥阳县|