2
假设,我有一个存储过程,它接受一个参数-id,并返回与此id相对应的一些数据。如果我想检索所有这些数据,比如在SELECT查询中使用通配符,该怎么办?这个怎么做?通配符作为存储过程的参数
假设,我有一个存储过程,它接受一个参数-id,并返回与此id相对应的一些数据。如果我想检索所有这些数据,比如在SELECT查询中使用通配符,该怎么办?这个怎么做?通配符作为存储过程的参数
您可以为查询添加尾随的'%'。假设@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
你的答案是大约只有文本参数。如果传递参数是整数(例如,主键)会怎么样? –
这就是我以为你的意思:)你的意思是,如果搜索参数是1,你想返回所有的主键,包括1,11,112,等等? – user3358344
我的意思是,如果我想要id = 1的行,我将1作为参数,2 - > 2作为参数,但是如果我想要所有现有行,该怎么办? –