1. 程式人生 > >IN 運算子

IN 運算子

在前面已經介紹了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