正如我的标题所示,我有一个存储过程查询,我传入一个参数,它根据该参数返回数据。但是,如果我传递一个空白,我希望返回表中的所有内容。
我发布了一些代码,如你所见.... @id
参数只选择那个ID正确但我想知道我应该添加(或删除)的内容,所以如果这个参数是空白一切都归来了。
谢谢
CREATE PROCEDURE [dbo].[select_stuent]
@id varchar(25)
AS
CREATE TABLE dbo.#usp_holder (name varchar(25),
id char(5),
class varchar (25),
grade numeric(5)
)
INSERT INTO #usp_ holder (name, id, class)
SELECT
name, id, class
FROM
dbo.classmaster
INNER JOIN
dbo.classtypes ON classmaster.type = classtypes.type
WHERE
classmaster.id = @id;
答案 0 :(得分:1)
试试这个:
CREATE PROCEDURE [dbo].[select_stuent]
@id varchar(25)
AS
CREATE TABLE dbo.#usp_holder
(
name varchar(25),
id char(5) = null,
class varchar (25)
)
您可能需要添加其他条件来检查输入是empty string
还是null
。像这样:
IF (@id = '')
BEGIN
SET @id = null
END
INSERT INTO
#usp_ holder (name,id,class
)
Select name,id,class
from dbo.classmaster
inner join dbo.classtypes
on classmaster.type= classtypes.type
WHERE classmaster.id = ISNULL(@id, classmaster.id)