表tab1
 fName  forder    ftext
 a        1       张三
 a        2       李四
 a        3       王五
 
给出查询条件 fName=a,要求返回 forder 最大的那条记录,即返回结果集
----------------------
 a        3       王五

解决方案 »

  1.   

    select * from tab1 where fName='a' and forder in (select MAX(forder) FROM tab1 )
    这个行不行啊?有没有更优的写法
      

  2.   

    SELECT TOP 1 *
    FROM TAB1
    WHERE fName='a'
    ORDER BY forder  DESC
      

  3.   

    select * from tb a where not exists (select 1 from tb b where a.forder>b.forder) and a.fname='a'
      

  4.   

    select *,max(forder) from tab1
    where fName='a'
      

  5.   

    这个不行,如果(select MAX(forder) FROM tab1 )返回的fName='a' 不符和,就不会返回数据了
      

  6.   

    select *
    from (select *,row=row_number(partition by fName order by order by ID desc) from table1 )t
    where row=1 and fName ='a'
      

  7.   

    OR:
    SELECT *
    FROM TAB1 A
    WHERE fName='a'
    AND NOT EXISTS (
      SELECT 1
      FROM TAB1
      WHERE FName = A.FName
      AND forder > A.forder
     )
      

  8.   

    写反了,不好意思。select * from tb a where not exists (select 1 from tb b where a.forder<b.forder) and a.fname='a'
      

  9.   

    select * from tb t where  ftext=(select max( ftext) from tb where fName=t.fname and forder=t.forder)
      

  10.   

    多谢各位啊,好久没写sql,忘记了,,,
      

  11.   

    select top 1 * from tab1 where fName='a' order by forder desc;
      

  12.   

    select *,max(forder) from tab1
    where fName='a'
      

  13.   

    select fname,forder,max(Ftext)
    from dbo.Test
    where fname='a'