qq_27555223 2015-04-20 06:31 采纳率: 0%
浏览 6789

SQL如何根据传入的参数来判断是否执行where条件 存储过程

begin
select [reimbursement_id] = a.reimbursement_id
,[formCode] = a.formCode
,[reimbursement_title] = a.reimbursement_title
,[reimbursement_company_name] = c.EipCompanyShortName
,[VATPriceAmount] = a.VATPriceAmount
,[VATTaxAmount] = a.VATTaxAmount
,[last_modify_time]=a.last_modify_time
,[IsInclueSale] = a.IsInclueSale
,[total_money] = a.total_money
,[SaleTaxRate] = a.SaleTaxRate
,[SaleTaxAmount] = a.SaleTaxAmount
,[basic_data_value] = ISNULL(b.basic_data_value,'未指定')
,ROW_NUMBER() over(order by formCode) as RowIndex

    into #NoPagedDataSet1
    from [Finance].[dbo].[finance_reimbursement] a WITH ( NOLOCK )
    INNER JOIN dbo.finance_companyMapping c WITH ( NOLOCK )
    ON a.reimbursement_company_code = c.EipCode
    LEFT JOIN dbo.finance_basic_data b WITH ( NOLOCK )
    ON a.[SaleTaxRate] = b.basic_data_id and b.basic_data_type_id=64 
    where a.reimbursement_type = 2
    and formCode like '%'+ISNULL(@FormCode,'')+'%'
    and reimbursement_title like '%'+ISNULL(@FormTitle,'')+'%'
    and a.last_modify_time between @PassedDateFrom and @PassedDateTo 
    and a.IsInclueSale = @IsInclueSale      @IsInclueSale怎么为空时不执行
    and a.reimbursement_company_code = @Company_Code     @Company_Code怎么为空时不执行

    order by [reimbursement_id] desc
    select *,RowIndex from #NoPagedDataSet1
    where 

    RowIndex > ((@CurrentPage - 1) * @PageSize) And RowIndex <=(@CurrentPage * @PageSize)

    SET @TotalCount = (SELECT COUNT(*) AS TotalCount FROM #NoPagedDataSet1)

    drop table #NoPagedDataSet1

end

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 c程序不知道为什么得不到结果
    • ¥40 复杂的限制性的商函数处理
    • ¥15 程序不包含适用于入口点的静态Main方法
    • ¥15 素材场景中光线烘焙后灯光失效
    • ¥15 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置