哪有exists使用方法以?学了很久的sqlserver ,总不不知道  exists  深入含义?请前辈指路!!

解决方案 »

  1.   

    帮助里有的:
    EXISTS
    指定一个子查询,检测行的存在。 
    这个例子比较了两个语义类似的查询。第一个查询使用 EXISTS 而第二个查询使用 IN。注意两个查询返回相同的信息。USE pubs
    GO
    SELECT DISTINCT pub_name
    FROM publishers
    WHERE EXISTS
       (SELECT *
       FROM titles
       WHERE pub_id = publishers.pub_id
       AND type = 'business')
    GO-- Or, using the IN clause:USE pubs
    GO
    SELECT distinct pub_name
    FROM publishers
    WHERE pub_id IN
       (SELECT pub_id
       FROM titles
       WHERE type = 'business')
    GO下面是任一查询的结果集:pub_name                                 
    ---------------------------------------- 
    Algodata Infosystems                     
    New Moon Books                           (2 row(s) affected)还有其他的看帮助吧
      

  2.   

    exists 适合内小外大的查询,in 适合内大外小的查询!
      

  3.   

    USE pubs
    GO
    SELECT DISTINCT pub_name
    FROM publishers
    WHERE EXISTS
       (SELECT *
       FROM titles
       WHERE pub_id = publishers.pub_id
       AND type = 'business')
    GO-- Or, using the IN clause:USE pubs
    GO
    SELECT distinct pub_name
    FROM publishers
    WHERE pub_id IN
       (SELECT pub_id
       FROM titles
       WHERE type = 'business')
    GO