2014-03-02 40 views
2

假设,我有一个存储过程,它接受一个参数-id,并返回与此id相对应的一些数据。如果我想检索所有这些数据,比如在SELECT查询中使用通配符,该怎么办?这个怎么做?通配符作为存储过程的参数

回答

3

您可以为查询添加尾随的'%'。假设@param是参数存储过程:

declare @param2 varchar(100) 
set @param2 = @param + '%' 

select * from table where column like @param2 

,将返回与@参数的值开始通配符搜索。对于部分匹配使用'%' + @param + '%'

[编辑]

基于以下澄清意见:

if @id != '*' 
begin 
    select * from table where column = @id 
end 
else 
begin 
    select * from table 
end 
+0

你的答案是大约只有文本参数。如果传递参数是整数(例如,主键)会怎么样? –

+0

这就是我以为你的意思:)你的意思是,如果搜索参数是1,你想返回所有的主键,包括1,11,112,等等? – user3358344

+0

我的意思是,如果我想要id = 1的行,我将1作为参数,2 - > 2作为参数,但是如果我想要所有现有行,该怎么办? –