我想将数字列的所有值显示为数字参数中的默认值。对于非数字/文本列,我使用了“全部”选择,它正在选择该列的所有值。但是选择“全部”或选择“%”或选择“%[0-9]%”会在数字列中给我错误。我不想使用“允许多个值”选项,任何人都可以帮助我。
我希望参数自行填充所有数值。
答案 0 :(得分:2)
对没有多个值的数字参数执行此操作的一种方法是将所有参数值与-1合并,然后将其称为全选。
因此,如果您的参数(@numcolumn)值是这样的
1
2
3
然后您只需使用并集all附加一个-1
像这样。 (varchar(5)只是显示示例的选择。选择适合您需求的内容)
select -1 as value
,'Select All' as value_name
union all
select mycolumn as value
,cast(mycolumn as varchar(5)) as value_name
from mytable
所以现在您的@numcolumn参数列表将是这样
value value_name
-1 select All
1 1
2 2
3 3
然后在数据集的where子句中,像这样设置参数值。
where ( @numcolumn = -1 or sometable.somecolumn = @numcolumn)
因此,如果您选择-1作为参数值,则查询将返回所有内容。否则它将根据参数中选择的值进行过滤。
要使参数选择看起来整洁。.将@numcolumn参数值设置为value,将参数标签设置为value_name
希望有道理!