求一条语句:若name前五个字符相同,只取val最小的一条name     val
aaaaabb  11
aaaaacc  12
AAAAABB  10
AAAAACC   9返回
name     val
aaaaabb  11
AAAAACC   9

解决方案 »

  1.   

    select name,min(val) from Table group by left(name,5)
      

  2.   

    表中字段不只含有name 和 val,还有很多别的字段。用group by 不行吧
      

  3.   

    select * from Table t where not exists (select 1 from table where t.name=name,t.val>val)
      

  4.   


    name val
    aab 12
    aab 13则返回
    name val
    aab  12意思是字符长度不超过5的时候也要包括在内
      

  5.   

    select * from tb t where not exists(select 1 from tb where name=t.name and val<t.val)
      

  6.   

    SELECT * FROM TB T WHERE VAL=SELECT (min(val) from TB left(name,5)=left(T.name,5))
      

  7.   

    select * from Table t where not exists (select 1 from table where t.name=name and t.val>val)
      

  8.   


    select * from tb t
    where not exists(select * from tb where left(name,5)=left(t.name,5) and val<t.val)
      

  9.   

    select * from Table t where not exists (select 1 from table where left(t.name,5)=left(name,5) and t.val>val)
      

  10.   

    select 
      * 
    from 
      tb t 
    where
     not exists(select 1 from tb where left(name,5)=left(t.name,5) and val<t.val)
      

  11.   

    SELECT * FROM TB T WHERE VAL=(SELECT min(val) from TB left(name,5)=left(T.name,5))
      

  12.   


    select * from Table t where not exists (select 1 from table where left(name,5)=left(t.name,5),t.val>val)
      

  13.   

    SELECT * FROM TB T WHERE VAL=(SELECT min(val) from TB name=T.name)?
    就这样