我需要一个非常简单的存储过程,假设我们在表中有一些员工数据。其中一列包含NickName
名员工。 NickName
列是可空的,例如我们有10条记录,7名员工有昵称,而其他3则为空。我想传递NickName
的参数;如果我在参数中传递值,则应根据参数值返回数据,如果不在参数中传递任何值,则应显示所有10条记录,表示应显示NickName
和空值记录。
以下存储过程运行良好,但它不会返回具有NULL值的行:
@name VARCHAR(30) = NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT *
FROM Emp
WHERE NickName = ISNULL(@name, NickName)
END
如果有人回答,我将非常感激。
答案 0 :(得分:1)
@name varchar(30)= NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT * from Emp where NickName IS NULL OR NickName = @name
end
答案 1 :(得分:1)
你可以尝试类似下面的内容
@name varchar(30)= NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT * from Emp where ISNULL(NickName,'') = COALESCE(@name,Nickname, '')
end