CREATE TABLE ClubEvents
[EventsID] [int] NOT NULL,
[ClubID] [int] NULL,
[ClubName] [nvarchar](100) 
[EventCategory] [tinyint] NOT NULL,  (说明,只有两个值,0和1)
[Sport] [nvarchar](20) 
[EventName] [nvarchar](50)  NOT NULL,
[SinHappenTime] [nvarchar](20)  
[SinHappenDate] [nvarchar](50) 
[ReHappenTimestart] [nvarchar](20) ,
[ReHappentimeend] [nvarchar](20) 
[ReHappendatestart] [nvarchar](20) 
[ReHappendateend] [nvarchar](20) 
)
表结构如上,
现在想在页面上通过传参数ClubID,显示离当天时间最近的尚没有开始的四个events,既包括EventCategory=0的,也也包括EventCategory=1的。
当EventCategory=0时,需要选出EventName、SinHappenTime、SinHappenDate;
当EventCategory=1时,需要选出EventName、ReHappenTimestart、ReHappendatestart。
想用一个存储过程来实现选择,应如何写?请各位高手帮忙!

解决方案 »

  1.   

    是这样?DECLARE @ClubID int
    select top 4 EventName
    ,case when EventCategory=0 then SinHappenTime else ReHappenTimestart end strs
    ,case when EventCategory=0 then SinHappenDate else ReHappendatestartend end strs1
    from ClubEvents where ClubID=@ClubID order by SinHappenTime,SinHappenDate
      

  2.   


    DECLARE @ClubID int
    select top 4 EventName
                ,case when EventCategory=0 then SinHappenTime else ReHappenTimestart end strs
                ,case when EventCategory=1 then SinHappenDate else ReHappendatestartend end strs1
    from ClubEvents where ClubID=@ClubID order by SinHappenTime,SinHappenDate