创建存储过程(if 语句例句)

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:   <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[SP_NEWS_COUNT]
-- Add the parameters for the stored procedure here
@startdate datetime, --起始日期
@enddate datetime,   --结束日期
@id bigint    
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

    -- Insert statements for procedure here
if @startdate =''
select @startdate = min(view_date)
from msg_view
if @enddate =''
set @enddate = getdate()
if @id =''
begin
select m.msg_id,
    sum(m.view_count)as count,
    n.cate_code,
    n.n_title,
    n.n_infor_channel
from msg_view m inner join news n
          on m.msg_id=n.news_id
where (view_date between @startdate and @enddate)
group by m.msg_id,n.cate_code,n.n_title,n.n_infor_channel
order by count desc
end
if @id !=''
begin
select m.msg_id,
    sum(m.view_count)as count,
    n.cate_code,
    n.n_title,
    n.n_infor_channel
from msg_view m inner join news n
          on m.msg_id=n.news_id
where (view_date between @startdate and @enddate) and @id=msg_id
group by m.msg_id,n.cate_code,n.n_title,n.n_infor_channel
order by count desc
end
END
GO

SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO

原文地址:https://www.cnblogs.com/hutie1980/p/1403676.html