Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 当SSRS通配符搜索为空时,不要返回所有值_Sql Server_Reporting Services - Fatal编程技术网

Sql server 当SSRS通配符搜索为空时,不要返回所有值

Sql server 当SSRS通配符搜索为空时,不要返回所有值,sql-server,reporting-services,Sql Server,Reporting Services,当SSRS通配符搜索留空时,如何阻止其返回所有值?目前,如果我为SKU(由下面的脚本生成)输入一个值,但没有为SKU_说明输入至少一个值,则报告将返回所有记录,而不仅仅是SKU记录 我将参数设置为允许空白和多个值,因为我需要能够输入SKU或SKU_说明或两者,具体取决于对每个产品的了解 WHERE A.sku in (@SKU) OR B.sku_desc like '%' + @SKU_Description + '%' 我原以为这样可能行得通,但行不通: IIf(Parameters!

当SSRS通配符搜索留空时,如何阻止其返回所有值?目前,如果我为SKU(由下面的脚本生成)输入一个值,但没有为SKU_说明输入至少一个值,则报告将返回所有记录,而不仅仅是SKU记录

我将参数设置为允许空白和多个值,因为我需要能够输入SKU或SKU_说明或两者,具体取决于对每个产品的了解

WHERE A.sku in (@SKU) 
OR B.sku_desc like '%' + @SKU_Description + '%' 
我原以为这样可能行得通,但行不通:

IIf(Parameters!SKU_Description.Value="",  "WHERE A.sku in (@SKU)"
, "WHERE A.sku in (@SKU) or B.sku_desc like '%' + @SKU_Description + '%'")

我能找到的每个线程都是关于在留空时返回所有值,这与我需要做的相反

您的查询可能需要如下所示

WHERE (@SKU = '' OR A.sku in (@SKU)) 
AND (@SKU_Description = '' OR B.sku_desc like '%' + @SKU_Description + '%') 
如果@SKU或@SKU_Description可以为空,那么您可能需要

WHERE (ISNULL(@SKU,'') = '' OR A.sku in (@SKU)) 
AND (ISNULL(@SKU_Description,'') = '' OR B.sku_desc like '%' + @SKU_Description + '%')
编辑:

如果Sku和Sku描述不必为同一记录匹配,则可以使用此选项

WHERE A.sku in (@SKU) 
OR (@SKU_Description <> '' AND B.sku_desc like '%' + @SKU_Description + '%') 
其中A.sku(@sku)
或(@SKU_Description''和类似“%”+@SKU_Description+'%”的B.SKU_Description)

谢谢,非常接近!但是,此解决方案一次只适用于一种产品。我需要一个能够容纳多个值的解决方案,这些值可以同时被SKU或SKU描述引用。例如,如果已知,将输入SKU。但是,一个SKU也应该能够与另一个SKU未知的产品的SKU_描述同时输入。这几乎适用于我的原始查询,但当输入SKU且SKU_描述为空时,所有中的值都将返回,因为通配符搜索与所有值都匹配,而不是被忽略。@AnDrEw我明白了。。也许你需要的是编辑