Coalesce和nullif有什么区别

时间:2016-10-12 16:53:27

标签: sql sql-server reporting-services ssrs-2012

我目前正在制作SSRS报告,该报告需要根据其DEA编号或NPI编号显示Dr的ID。我需要能够在DEA和NPI上进行合并以找到非未知的,然后我将向SSRS报告中添加代码,该代码将显示悬停以指示" DEA Number"或者" NPI号码"正在展示。

以下SQL会在后端完成此操作吗?从我在网上看到的内容看来,nullif和coalesce非常相似,并且想知道下划线的差异是什么,以及它们是否可以一起用来完成这个要求。

coalesce(nullif(convert(varchar,NationalProviderIdentifier),'0'), DEANumber) as 'Dr Id'

1 个答案:

答案 0 :(得分:6)

他们或多或少没有关联。

coalesce()获取列表的值将返回第一个非null 值(如果所有值均为null,则返回null })。

nullif()获取两个值并返回第一个值,但如果两个值相等则返回null

如果将两者转换为case语句,则为:

coalesce

case
    when value1 is not null then value1
    when value2 is not null then value2
    ... etc
    else null
end

nullif

case when value1 = value2 then null else value1 end