溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SqlServer系列筆記——查詢過濾分組排序

發(fā)布時(shí)間:2020-06-27 12:43:14 來源:網(wǎng)絡(luò) 閱讀:656 作者:codejson 欄目:數(shù)據(jù)庫(kù)
  1. DISTINCT

    DISTINCT是對(duì)整個(gè)結(jié)果集進(jìn)行數(shù)據(jù)重復(fù)處理的,而不是針對(duì)每一個(gè)列,

因此下面的語句并不會(huì)只保留Fdepartment進(jìn)行重復(fù)值處理:

 

   SELECT DISTINCT FDepartment,FSubCompany 

     FROM T_Employee

2. GROUP BY

按照年齡進(jìn)行分組統(tǒng)計(jì)各個(gè)年齡段的人數(shù):

SELECT FAge,Count(*) FROM T_Employee GROUP BY Fage

GROUP BY子句必須放到WHERE語句的之后 


沒有出現(xiàn)在GROUP BY子句中的列是不能放到SELECT語句后的列名列表中的 (聚合函數(shù)中除外)


錯(cuò)誤:

 SELECT FAge,FSalary FROM T_Employee GROUP BY FAge 


正確:

 SELECT FAge,AVG(FSalary) FROM T_Employee GROUP BY FAge

3.Having

在Where中不能使用聚合函數(shù),必須使用Having,Having要位于Group By之后:

 

   SELECT FAge,COUNT(*) AS 人數(shù) FROM T_Employee 

    GROUP BY FAge 

    HAVING COUNT(*)>1 


注意Having中不能使用未參與分組的列,Having不能替代where。作用不一樣,Having是對(duì)組進(jìn)行過濾。


4.In

Delete T_Employee where FId in(21,22)

SELECT FAge,FNumber,FName FROM T_Employee 

  WHERE FAge IN (23,25,28) 

范圍值:

   SELECT * FROM T_Employee WHERE FAGE>=23 AND FAGE <=27 

   

SELECT * FROM T_Employee WHERE FAGE BETWEEN 23 AND 27


5.ORDER BY 數(shù)據(jù)排序

ORDER BY子句位于SELECT語句的末尾,它允許指定按照一個(gè)列或者多個(gè)列進(jìn)行排序,

還可以指定排序方式是升序(從小到大排列,ASC)還是降序(從大到小排列,DESC)。


按照年齡升序排序所有員工信息的列表:

    SELECT * FROM  T_Employee ORDER BY FAge ASC 


按照年齡從大到小排序,如果年齡相同則按照工資從大到小排序 :

SELECT * FROM  T_Employee ORDER BY FAge DESC,FSalary DESC(多個(gè)排序條件)



ORDER BY子句要放到WHERE子句之后 :

SELECT * FROM T_Employee WHERE FAge>23 ORDER BY FAge DESC,FSalary DESC 


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI