id   price    locate
1    0.5       loc1
2    0.6       loc2
3    0.5       loc3
我想把上表的一部分:price  locate 
                  0.5    loc1
                  0.6    loc2
取出来。怎么样用sql语句实现?不是用java的语句啊

解决方案 »

  1.   

    等看用什么数据库了,oracle的话可以where后面加rounum=2
      

  2.   

    lz到底是啥意思啊,用sql语句写不是很简单么
    select price, locate from ** where id in (1,2);
    不明白楼主的意思
      

  3.   

    select DISTINCT price,locate from (
      select DISTINCT price
        from XX
    ); 
      

  4.   

    select price,locate from 表 a where id in(select min(id) from 表 b group by price,locate)
      

  5.   

    id       price         locate        name
    1         0.5               loc1       apple
    2         0.6               loc2       pear
    3         0.5               loc3       apple
    4         0.7               loc1       apple
    不好意思 ,问题没说明白。
    我用的是access数据库,由于id太多,不能用in。
    表中id是自增的,不同的locate对应同一个name可能会有相同的price值。
    我想做的就是把不同的price取出来,而且要知道从哪个地址可以找到取出的price。
    所以我想用select distinct price ,locate from abc  where name=apple  但具体该怎么写呢?
    上表取出的结果为:price   locate     第三行与第一行的price一样,我只要一个
                    0.5     loc1
                    0.7     loc1
      

  6.   

    我知道你的意思,用distinct.但你知道吗?distinct删除的是全部字段相同值时(不包括id),只有部分字段相同是不删除的.如果你把id是3的locate的值改成loc1就可以了.select distinct price,locate from 表名. 
      

  7.   

    你不把id是3的locate的值改成loc1是不会删除重复行的.只要有1个字段值不同就不是重复行(不包括id).懂了吗?
      

  8.   

    cursor_wang的意思 就是 说   这个功能 在数据库里不能实现, 只好拿到java语句里实现么?
      

  9.   

    SELECT DISTINCT "栏位名" FROM "表格名" 
    你这里根据price不重复,那么就是select distinct price from 表名