美文网首页软件测试Oracle数据库管理之道
七、SQL-子查询⑥(in运算符)

七、SQL-子查询⑥(in运算符)

作者: 小小一颗卤蛋 | 来源:发表于2020-05-22 23:31 被阅读0次

    IN 运算符:

    使用IN运算符可以用来匹配一个固定集合中的某一项。

    如:检索在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
    

    相关文章

      网友评论

        本文标题:七、SQL-子查询⑥(in运算符)

        本文链接:https://www.haomeiwen.com/subject/dryhahtx.html