有没有更好的方法来做这个或这个代码好吗?
DECLARE @Test DECIMAL(18,2) = NULL
, @Test1 DECIMAL(18,2) = '5'
SELECT ISNULL(@Test,(ISNULL(@Test1,'0')))
Run Code Online (Sandbox Code Playgroud)
谢谢,EB
不需要嵌套ISNULL
.你可以使用COALESCE
:
按顺序计算参数,并返回最初未计算为NULL的第一个表达式的当前值
DECLARE @Test DECIMAL(18,2) = NULL , @Test1 DECIMAL(18,2) = 5;
SELECT COALESCE(@Test, @Test1, 0);
Run Code Online (Sandbox Code Playgroud)