select * from T_INFO_CASEBASE  
  where  
  JSSJ=(select top 2 JSSJ  from  T_INFO_CASEBASE order by JSSJ desc )  
 这样写有报错误.
"子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。"请问下大家, 要怎么弄才会把那2条的信息都显示出来啊? 

解决方案 »

  1.   

    把 = 改为 in select   *   from   T_INFO_CASEBASE     
        where     
        JSSJ in (select   top   2   JSSJ     from     T_INFO_CASEBASE   order   by   JSSJ   desc   )     
      

  2.   

    --或者
    select * from T_INFO_CASEBASE a,     
    (select top 2 JSSJ from T_INFO_CASEBASE order by JSSJ desc) b
    where a.jssj = b.jssj
      

  3.   

    =改为 in 即可.或者select a.* from t_info_casebase a
    inner join (select   top   2   JSSJ     from     T_INFO_CASEBASE   order   by   JSSJ   desc) b
    on a.jssj=b.jssj
      

  4.   

    =改成 IN
    select   *   from   T_INFO_CASEBASE     
        where     
        JSSJ in (select   top   2   JSSJ     from     T_INFO_CASEBASE   order   by   JSSJ   desc   )