如果MyTable.MyColumn和@MyVar中的值是NULL,则以下语句返回什么?
ISNULL(@MyVar, MyTable.MyColumn)
Mik*_*son 10
create table MyTable
(
MyColumn int
)
insert into MyTable default values
declare @MyVar int
select ISNULL(@MyVar, MyTable.MyColumn)
from MyTable
Run Code Online (Sandbox Code Playgroud)
结果:
-----------
NULL
Run Code Online (Sandbox Code Playgroud)
其他人解释了会发生什么.解决方案,以防您不想要那些Null.
如果表达式是在SELECT列表中-你不希望NULL出现在结果中,你可以使用COALESCE()它可以超过2个参数功能:
COALESCE(@MyVar, MyTable.MyColumn, another_value)
Run Code Online (Sandbox Code Playgroud)如果你有条件,就像你在评论中提到的那样:
WHERE MyTable.MyColumn = ISNULL(@MyVar, MyTable.MyColumn)
Run Code Online (Sandbox Code Playgroud)
您可以替换它(假设您希望条件TRUE在@MyVarnull 时保持,无论是否MyTable.MyColumn 为null):
WHERE (MyTable.MyColumn = @MyVar OR @MyVar IS NULL)
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
1090 次 |
| 最近记录: |