sql - Removing part of where clause depending on input -
i have following query in want omit filter created_by = @searchby
if @searchby
's input 1
. how can this?
create proc [dbo].[rptcashcollectioninner] @branchid int, @searchby int, @paiddate datetime begin select id reading created_by = @searchby , branch_id = @branchid end;
you can short-circuit search element or
operator:
create proc [dbo].[rptcashcollectioninner] @branchid int, @searchby int, @paiddate datetime begin select id, reading (@searchby = 1 or created_by=@searchby) , branch_id=@branchid end;
or, more elegantly, in
operator:
create proc [dbo].[rptcashcollectioninner] @branchid int, @searchby int, @paiddate datetime begin select id, reading @searchby in (1, created_by) , branch_id=@branchid end;
Comments
Post a Comment