表内容如下:
       name | seqno  | description
         A  |   1    |   test
         A  |   2    |   test
         A  |   3    |   test
         A  |   4    |   test
         A  |   5    |   test
         A  |   6    |   test
         A  |   7    |   test
         B  |   1    |   test
         B  |   2    |   test
         B  |   3    |   test
         B  |   4    |   test
         B  |   5    |   test
         B  |   6    |   test
         B  |   7    |   test
         C  |   1    |   test
         C  |   2    |   test
         C  |   3    |   test
         C  |   4    |   test
         C  |   5    |   test
         C  |   6    |   test
         C  |   7    |   test
我想有一个sql语句,搜索的结果是         
         A  |   1    |   test
         A  |   2    |   test
         A  |   3    |   test
         B  |   1    |   test
         B  |   2    |   test
         B  |   3    |   test
         C  |   1    |   test
         C  |   2    |   test
         C  |   3    |   test
请问该怎么实现?         

解决方案 »

  1.   

    补充说明:换句话说,其实我就是想要每个name的前若干行数据
      

  2.   

    | 线不要的吧?
    select * from AAA where seqno in ('1','2','3')
      

  3.   

    有人给我一个方法,但是要建一个function,我想知道如果直接用单纯的sql语句的话,可不可以
      

  4.   

    不知道理解的对不对啊
    select * from tablename where seqno between 1 and n
    order by name,seqno(n=1,2,3,.....,n)
      

  5.   

    manyroads(凉茶不二碗) 理解得很对,大家加油啊,有没有办法呢
      

  6.   

    sun5(壮志骄阳) 的sql条件中的1和n,我是不知道值的所以不能把他们作为sql的条件
      

  7.   

    可以阿!
    select * from tab 
    where seqno between &m and &n
    order by name,seqno
    你运行时就会提示你输入参数,然后就可以找到你想要得 m 到 n 的数据。
      

  8.   

    数据库也不是万能的,也有自己不足之处。LZ请考虑解决此问题思路是否是SQL的弱项,复杂的只能写脚本了。
      

  9.   

    使用分析函数row_number,语句如下:
    select name,seqno,description 
    from(select name,seqno,description,row_number()over(partition by name order by seqno)id
    from table_name) where id<=3;
      

  10.   

    高人真多啊,感谢大家回复,散分,没办法,我只好在程序中取巧了,避过了这段sql,就是有点风险,呵呵