2014-03-02 73 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作爲參數,但是如果我想要所有現有行,該怎麼辦? –