我正在尝试在我拥有的存储过程中实现可选参数,但我遇到了问题.这是一个简化的查询来说明问题:
SET ANSI_NULLS OFF
DECLARE @MiddleName VARCHAR(20);
SET @MiddleName = NULL;
SELECT * FROM [Customer]
WHERE [LastName] = 'Torres'
AND [MiddleName] = COALESCE(@MiddleName, [MiddleName])
Run Code Online (Sandbox Code Playgroud)
当我运行此查询时,我需要返回一行,因为一个Torres在[MiddleName]列中有NULL.但查询返回零行.使用IFNULL()产生相同的结果.通过研究COALESCE,我的印象是如果所有表达式都为NULL,则返回NULL.由于我不是SQL专家,我认为我错过了什么,但它是什么......
在此先感谢您的帮助.