程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> sql聚集運算符應用辦法

sql聚集運算符應用辦法

編輯:MSSQL

sql聚集運算符應用辦法。本站提示廣大學習愛好者:(sql聚集運算符應用辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是sql聚集運算符應用辦法正文


(1)IN運算符:它可以用來婚配一個固定聚集中的某一項。好比說一個聚集外面的年份有(2001,2003,2005),那末便可以有:


SELECT * FROM T_Book
WHERE FYearPublished IN(2001,2003,2005)

IN運算符,除支撐從固定的聚集外面去婚配,固然也支撐靜態的聚集方法去婚配。好比以下方法:


SELECT * FROM T_Reader
WHERE FYearOfJoin IN
(
select FYearPublished FROM T_Book
)

(2)ANY和SOME聚集運算符:在SQL SERVER外面,ANY和SOME是同義詞,兩者的用法和功效一樣(一樣還弄兩個,不曉得是否是蛋疼)。比擬於IN運算符,ANY和SOME須要與其它的比擬符(年夜於(>)、等於(=)、小於(<)、年夜於等於(>=)、小於等)配合應用,並且比擬符須要在它們的後面。

SELECT * FROM T_Reader
WHERE FYearOfJoin =ANY
(
select FYearPublished FROM T_Book
)

留意:和IN 運算符分歧,ANY 和SOME運算符不克不及與固定的聚集相婚配,好比上面的SQL 語句是毛病的:


SELECT * FROM T_Book
WHERE FYearPublished<ANY(2001,2003,2005)

(3)ALL聚集運算符:在SQL SERVER外面,ALL運算符也須要與其它的比擬符(年夜於(>)、等於(=)、小於(<)、年夜於等於(>=)、小於等)配合應用,並且比擬符須要在它們的後面。

SELECT * FROM T_Book
WHERE FYearPublished<ALL
(
SELECT FYearOfJoin FROM T_Reader
)

留意:

I、與ANY和SOME 運算符雷同,ALL 運算符異樣不克不及與固定的聚集相婚配,好比上面的SQL 語句是毛病的:

SELECT * FROM T_Book
WHERE FYearPublished<ALL(2001,2003,2005)

II、關於應用ALL運算符,還有一項須要留意,那就是這個ALL子查詢成果為空時,婚配的成果其實不是以空的方法來處置,而是相當於全體婚配勝利。所以在應用ALL運算符的時刻,這一個成績很輕易在體系中形成BUG,是以應用時必需留意。好比:

SELECT * FROM T_Book
WHERE FYearPublished<ALL
(
SELECT FYearOfJoin FROM T_Reader
WHERE FProvince = 'JiangSu'
)

假如ALL子查詢的成果為空時,則將會取SELECT FYearOfJoin FROM T_Reader的全體成果來作為勝利婚配的成果。

(4)EXISTS聚集運算符:和IN、ANY、SOME、ALL等運算符分歧,EXISTS運算符是單目運算符,它不與列婚配,是以它也不請求待婚配的聚集是單列的。EXISTS運算符用來檢討每行能否婚配子查詢,可以以為EXISTS就是用來測試子查詢的成果能否為空,假如成果集為空則婚配成果為false,不然婚配成果為true。


SELECT * FROM T_Category
WHERE EXISTS
(
SELECT * FROM T_Book
WHERE T_Book. FCategoryId = T_Category.FId
AND T_Book. FYearPublished<1950
)

在EXISTS後的子查詢中,SQL對T_Category表中的每行數據到子查詢中停止婚配,測試T_Book 表中能否存在FCategoryId 字段值等於以後種別主鍵值且出書年份在1950 年之前的書本。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved