我目前正在制作SSRS报告,该报告需要根据其DEA编号或NPI编号显示Dr的ID。我需要能够在DEA和NPI上进行合并以找到非未知的,然后我将向SSRS报告中添加代码,该代码将显示悬停以指示" DEA Number"或者" NPI号码"正在展示。
以下SQL会在后端完成此操作吗?从我在网上看到的内容看来,nullif和coalesce非常相似,并且想知道下划线的差异是什么,以及它们是否可以一起用来完成这个要求。
coalesce(nullif(convert(varchar,NationalProviderIdentifier),'0'), DEANumber) as 'Dr Id'
答案 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