Вы можете использовать его следующим образом:
ALTER PROCEDURE [dbo].[DailyBatchSummaryReport_NoGroup]
@FromDatePara Datetime,
@ToDatePara Datetime,
@SeleRecipe nvarchar(max),
@SeleOrder nvarchar(max),
@SeleCustomer nvarchar(max),
@SeleSite nvarchar(max),
@SeleTruck nvarchar(max),
@SeleDriver nvarchar(max),
AS
BEGIN
Передайте значения @SeleOrder, @SeleCustomer как 0 для непроверенного и 1 для флажка, установленного
select * from
yourtable
where
OrderNumber= CASE WHEN @SeleOrder = '0' THEN OrderNumber ELSE @SeleOrder END
AND
CUSTOMER= CASE WHEN @SeleCustomer = '0' THEN CUSTOMER ELSE @SeleCustomer END
AND
Driver= CASE WHEN @SeleDriver = '0' THEN Driver ELSE @SeleDriver END
Убедитесь, что вы передаете значение по умолчанию как0. Здесь вы выбрали тип данных как nvarchar (max), поэтому я написал «0», иначе вы можете написать 0, если вы передадите просто значение типа int.или вы можете установить значение по умолчанию как 0
ALTER PROCEDURE [dbo].[DailyBatchSummaryReport_NoGroup]
@FromDatePara Datetime,
@ToDatePara Datetime,
@SeleRecipe int = 0,
@SeleOrder int = 0,
@SeleCustomer int = 0,
@SeleSite int = 0,
@SeleTruck int = 0,
@SeleDriver int = 0,
AS
BEGIN
выбрать логику в соответствии с вашим удобством кодирования.но вышеуказанный метод будет работать