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 年之前的書本。