SQL Server:如何将空值视为零

bur*_*1ce 6 sql-server

这是我正在尝试做的一个例子:

Select
S1.Name as S1Name,
S1.Itemcontent as S1ItemContent,
...
S2.Name as S2Name,
S2.Name as S2ItemContent,
**(S1.OrderValue * 1000*1000 + S2.OrderValue*1000 +  S3.OrderValue) as OrderValue**
From (joining s1, s2 and s3 on a particular value)
Order by OrderValue
Run Code Online (Sandbox Code Playgroud)

当S1.OrderValue,S2.OrderValue或S3.OrderValue为null时,OrderValue也变为null.我希望SQL Server在这种情况下将空值视为0.我怎样才能做到这一点?

And*_*rew 11

使用isNull函数,例如

isnull(s1.ordervalue,0)
Run Code Online (Sandbox Code Playgroud)

如果值为null,则使用您提供的替代值作为第二个值.


Rem*_*anu 5

COALESCE(Value, 0) 要么 ISNULL(Value, 0)


Gra*_*tzy 3

合并返回第一个非空值。

**(coalesce(S1.OrderValue,0) * 1000 + coalesce(S2.OrderValue,0)*1000 +  coalesce(S3.OrderValue,0)) as OrderValue
Run Code Online (Sandbox Code Playgroud)