2017-08-14 81 views
0

我有一个查询:按全称SQL参数,如何给*(ALL)一个默认参数?

SELECT Job,Age,Name + + Surname AS FullName 

现在我过滤(在SSRS)。如何在全名下拉字段中设置默认值以默认显示所有候选人?

字段下拉列表如下所示:

EVERYONE 
JON 
Patric 
KELLY 
STEVE 
+0

嗨汤米,我正在这里SSRS我提及降了下来,请忽略下拉提 – AfricanHeart

回答

0

创建一个新的多值参数

创建一个新的数据集:

select Name + Surname as FullName 
from MyTable 

新的参数作为查询的设置默认>新数据集

设置可用于同一

在你的主数据集,使用:

select <columns> 
from MyTable 
where Name + Surname in(@NewParameter) 
+0

谢谢!并可以请关于默认值,将生成所有用户的意见(*) – AfricanHeart

+0

@AfricanHeart这实际上是我刚才做的 – JohnHC

0

你可能想是这样的:

WHERE upper(Name) = upper(@InParm) OR @InParm = '*' 
+0

嗨,感谢您的回复,但是,请你解释一下你的回答? – AfricanHeart

+0

@AfricanHeart - 你不明白什么?这是一个带有“OR”运算符的where语句。 – Hogan

1

您可以拉回你的数据类同下面的查询:

SELECT * FROM 
(
SELECT OrderBy=2,FilterValue=SurName, Job,Age,Name + + Surname AS FullName 
UNION 
SELECT OrderBy=1,FilterValue=NULL, NULL,NULL,NULL + + '<ALL>' AS FullName 
) 
ORDER BY 
    OrderBy,FullName 

然后将FilterValue发送到您的过滤器,并使用与以下类似的where子句:

SELECT * FROM MyTable 
WHERE 
    (@FilterValue IS NULL) OR (SurName = @FilterValue)