又看到你了 , wanyingsong(豌豆) ;)

解决方案 »

  1.   

    to:neverwin(老青蛙)
    来学习学习,呵呵
      

  2.   

    很多的時候,為了只用一條SQL語句而用子查詢,如果不要子查詢,那麼你要寫多個SQL語句,這樣也是不方便。所以用不用子查詢,那要看相關表數據量的大小?數據量大,最好不要子查詢多,那樣會使速度很慢,
    數據量不大,應該考慮用子查詢。
      

  3.   

    sql  server  2000  
    数据库有下表  
    table1  
    代码      姓名      地区  
    01          张三      001  
    02          李四      002  
    03          王五      003  
     
    table2  
    地区代码    地区名称  
    001              南宁  
    002              柳州  
     
    结果:  
    姓名    地区名称  
    张三    南宁  
    李四    柳州  
    王五    003  
     
    现有几种实现方式,请问各的优点和劣势,哪种比较好。  
    1、select  姓名,case  when  (select  地区名称  from  table2  where  table2.地区代码=table2.地区  )  is  null  then  table1.地区  else  (select  地区名称  from  table2  where  table2.地区代码=table2.地区  )  end  as  地区名称  from  table1
    2、select  a.姓名,isnull(b.地区名称,a.地区)  as  地区名称  
    from  table1  a  
    left  join  table2  b  on  a.地区=b.地区代码 在这里,连接查询比子查询要好,呵呵
      

  4.   

    哦~rea1gz(冒牌realgz V0.2),很清楚。;)晚上吃豆豆不过问题想不通还是有疙瘩1 当主查询中的列值改变之后,子查询必须重新查询一次。什么意思呢。。??
    2 不用子查询,那么连接查询在连接很多表的情况下,要注意些什么呢?
      

  5.   

    FROM BOL:许多查询都可以通过执行一次子查询并将结果值代入外部查询的 WHERE 子句进行评估。在包括相关子查询(也称为重复子查询)的查询中,子查询依靠外部查询获得值。这意味着子查询是重复执行的,为外部查询可能选择的每一行均执行一次。通常在能用连接替代的场合都尽可能不要使用子查询。
      

  6.   

    可以怎么理解:
    就是说如果条件语句中已有对A表中的数据查询,已经扫描过了,如果你的子查询中又用到了A表,它还是会查询一次,不会因为它上层查询而不进行全面扫描,如果套的层次越多,曾相当于N*N*N..次查询