楼主没有把变量介绍清楚 :
@MaxNumber int=6,请问数字6只是代表TOP 6吗?
,@Condition varchar (20)="All" 请问他的格式?
,@SortOrder varchar (20)="PostDate"
 /*按时间降序排序*/,请问怎样区分升序和绛序?
所有的查询是否都是联合6张表?

解决方案 »

  1.   

    楼主没有把变量介绍清楚 :
    @MaxNumber int=6,请问数字6只是代表TOP 6吗?
    ,@Condition varchar (20)="All" 请问他的格式?
    ,@SortOrder varchar (20)="PostDate"
     /*按时间降序排序*/,请问怎样区分升序和绛序?
    所有的查询是否都是联合6张表?
    -------------------------------------------------------------
    @MaxNumber int=6,请问数字6只是代表TOP 6吗?
    - 是由这个变量决定返回6要信息,不限定是Top 6 还是 IF (@MaxNumber > 0) SET ROWCOUNT @MaxNumber,只是能是能返回@MaxNumber指定的条数就行了@Condition varchar (20)="All" 请问他的格式?
    - 格式就是对应数据库的字段,All是指不限条件,比如 这个值可以是"isGood"、"isHot"等,意思是要让这个字段的值为真,就也是Where isGood=1、Where isHot=1 这样@SortOrder varchar (20)="PostDate" /*按时间降序排序*/,
    - 全部将序,也就是是 Order By PostDate Desc、Order By Hits Desc,目的是指定用来排序的字段所有的查询是否都是联合6张表?
    - 不一定,如果@Category指定为0,就是全表,如果值是1,则只是AAA表,值是2,则是BBB表
      

  2.   

    --1.先建包含6个表的视图
    create view v_1 as
    select * from (
    select * from aaa
    union alll
    select * from bbb
    union alll
    select * from ccc
    union alll
    select * from ddd
    union alll
    select * from eee
    union alll
    select * from fff
    ) a 
    where Passed=1
    gocreate proc p
    @MaxNumber int, /*指定要显示的条数*/
    @Condition varchar (20),/*查询条件格式如  isGood=1 and Category=1*/
    @SortOrder varchar (20) /*指定按降序排序的字段*/
    as
    declare @sql varchar(4000)
    set rowcount @maxnumber
    set @sql='select * from v_1 '
    if rtrim(@condition)<>''
    set @sql=@sql+' where '+@condition
    set @sql=@sql+' order by '+@sortorder+' desc'
    exec(@sql)
    go
    --调用事例:
    /*,@Category int=0 0表示不限分类*varchar (20)="PostDate" 按时间降序排序*/
    exec p 6,'','PostDate'
    /*6条指定的@Category分类的降序排序,如在变量值分别为:
    @MaxNumber int=6,@Category int=1,@Condition varchar (20)="All" 
    @SortOrder varchar (20)="PostDate" 按时间降序排序*/
    exec p 6,'Category=1','postdate'
      

  3.   

    调用事例,还真没有搞过,我是用asp.net(c#),可否说一下,怎么个调法?
      

  4.   

    谢谢 wgsasd311(自强不息)
    等我把调用事例搞一下,如果这方法对了,给你结帖.