IN 運算子
阿新 • • 發佈:2018-11-10
在前面已經介紹了IN運算子的簡單使用,使用IN運算子可以用來匹配一個固定集合中的某一項。比如下面的SQL語句檢索在2001、2003和2005年出版的所有圖書:
SELECT * FROM T_Book WHERE FYearPublished IN(2001,2003,2005)
執行完畢我們就能在輸出結果中看到下面的執行結果:
FId FName FYearPublished FCategoryId
1 About J2EE 2005 4
2 Learning Hibernate 2003 4
4 Jane Eyre 2001 1
15 DaoDeJing 2001 6
這裡進行匹配的集合是已經確定的集合“2001,2003,2005”,如果要匹配的集合是動態的則無法用這種方式來進行匹配了。比如,需要檢索所有圖書出版年份內入會的讀者資訊,可以使用簡單的SQL語句檢索出所有的圖書的出版年份:
select FYearPublished FROM T_Book
執行完畢我們就能在輸出結果中看到下面的執行結果:
FYearPublished
2005
2003
1999
2001
2002
1982
1860
1700
2008
1930
1945
1970
1971
1771
2001
1995
這個查詢結果是多行單列的,因此可以將其用來與IN 運算子進行匹配運算,SQL語句如下:
SELECT * FROM T_Reader WHERE FYearOfJoin IN(select FYearPublished FROM T_Book)
執行完畢我們就能在輸出結果中看到下面的執行結果:
FId FName FYearOfBirth FCity FProvince FYearOfJoin
1 Tom 1979 TangShan Hebei 2003
2 Sam 1981 LangFang Hebei 2001 3 Jerry 1966 DongGuan GuangDong 1995 4 Lily 1972 JiaXing ZheJiang 2005 5 Marry 1985 BeiJing BeiJing 1999 6 Kelly 1977 ZhuZhou HuNan 1995 7 Tim 1982 YongZhou HuNan 2001 9 John 1979 QingDao ShanDong 2003 11 July 1983 ZhuMaDian HeNan 1999 12 Fige 1981 JinCheng ShanXi 2003