select * from Table_a where fd1>23 order by desc

解决方案 »

  1.   

    select max(fd1),fd2,fd3 from Table_A group by fd1,fd2这样写有问题  max()返回的只是一行呢
    我就是想要fd1,fd2,fd3 可是group by 里只按fd1,fd2就好了.fd3 只取max(fd1)那条.select max(a.fd1) as fd1,a.fd2,(select top 1 b.fd3 from table_A b where b.fd1=a.fd1 order by b.fd1 desc) as fd3
    from Table_A a
    group by fd1,fd2,fd3这样似乎可以..
      

  2.   

    说的不明白,估计是这意思吧:
    select a.fd1,a.fd2,b.fd3 from
    (
    select max(fd1) as fd1,max(rowid) as rowid,fd2,fd3
    from Table_A
    group by fd1,fd2
    )  a,
    (
    select rowid,fd1,fd2,fd3
    from Table_A
    )  b
    where a.rowid = b.rowid
    这样可以获取到楼主给出的数据集中的要求的结果,但是如果在表中fd1和fd2确定的一行中fd3的值不确定,那么将出现随机选定rowid最大的一行的问题:
    如表中数据为
    Table_A
    fd1 ,     fd2,      fd3    rowid
    23        k         jjj     ...
    89        u         lll     ...
    29        k         uuu     AAAFEE
    89        u         lll     ...
    29        k         uuu     ...
    29        k         iii     AAAFEF
    则结果为fd1 ,     fd2,      fd3
    89        u         lll
    29        k         iii所以,这涉及你的执行策略和数据的完整性问题,考虑好数据之间的关系和约束再考虑怎么做
      

  3.   

    select fd2,fd1 ,fd3
    from Table_A
    where (fd1 ,fd2) in
    (select max(fd1),fd2
    from Table_A
    group by fd2)