2选择中的ISNULLS

Ebe*_*rtB 1 t-sql isnull

有没有更好的方法来做这个或这个代码好吗?

DECLARE  @Test DECIMAL(18,2) = NULL
        , @Test1 DECIMAL(18,2) = '5'

SELECT ISNULL(@Test,(ISNULL(@Test1,'0')))
Run Code Online (Sandbox Code Playgroud)

谢谢,EB

Luk*_*zda 5

不需要嵌套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)

DBFiddle演示