查询出ArticleSubTypeID为1和2的前2条记录,根据ArticleID排序。
查询结果如下:
ArticleID   ArticleTitle ArticleSubTypeID
1______________你好1_____________1
2______________你好2_____________1
4______________你好4_____________2
5______________你好5_____________2
只有20分,谁先给出语句,分给谁、、

解决方案 »

  1.   


    declare @Article table (ArticleID int,ArticleTitle varchar(5),ArticleSubTypeID int)
    insert into @Article
    select 1,'你好1',1 union all
    select 2,'你好2',1 union all
    select 3,'你好3',1 union all
    select 4,'你好4',2 union all
    select 5,'你好5',2 union all
    select 6,'你好6',2
    SELECT ArticleID,ArticleTitle,ArticleSubTypeID FROM 
    (
    select RANK() OVER (PARTITION BY ArticleSubTypeID ORDER BY ArticleID)
    AS rowid,* from @Article
    ) aa
    WHERE rowid <3
    /*
    ArticleID   ArticleTitle ArticleSubTypeID
    ----------- ------------ ----------------
    1           你好1          1
    2           你好2          1
    4           你好4          2
    5           你好5          2
    */
      

  2.   

    select * from (
    select  row_number() over(partition by ArticleSubTypeID order by ArticleID) as num,*  from Article) a
    where num=1 or num=2
      

  3.   


    那如果我要查询ArticleSubTypeID =30 和20的记录,你还能查询到吗。
      

  4.   

    select * from (
    select  row_number() over(partition by ArticleSubTypeID order by ArticleID) as num,*  from Article
     where ArticleSubTypeID in ('30','20')) a
    where num=1 or num=2
      

  5.   


    你这也不对啊,我的前2条记录,只是打个比方,这个是可以修改的。比如是前5条,前10条。
    还有这查询语句也不对啊,我给的是33or19 但是查询结果是
    ...1
    ...1
    ...11
    ...11
    ...19
    ...19
    ...33
    ...33怎么会还有1和11呢。我的ArticleSubTypeID 是没有规则的,而且ArticleID也是没有规则的,但是是唯一的。
      

  6.   

    要5条where num<6就可以了 ,后面你说的什么意思,不明白