小编mpe*_*erb的帖子

SQL Coalesce在WHERE子句中

我正在尝试在我拥有的存储过程中实现可选参数,但我遇到了问题.这是一个简化的查询来说明问题:

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专家,我认为我错过了什么,但它是什么......

在此先感谢您的帮助.

sql sql-server

6
推荐指数
1
解决办法
3万
查看次数

标签 统计

sql ×1

sql-server ×1