从维度表中设置事实表中的ID

在我的维度表中为放弃的呼叫我有ID 1代码NO,ID 2代码YES 我想要根据是否将这些ID加载到事实表中该呼叫被放弃使用联接。从维度表中设置事实表中的ID

如何永远存在的问题,我的数据库中被遗弃的值是否为NULL,是否为1。

所以,当我加入

INNER JOIN datamartend.dbo.Abandoned_Call_Dim 

ON incoming_measure.Abandoned = Abandoned_Call_Dim.abandoned_code

它拉没有结果?

有关于此的任何想法?

基本上所需要的是:

我想从废弃尺寸废弃的ID为2,如果在度量abandonded值为null,如果不为空

感谢

回答:

弃ID 2您可以使用CASE WHEN子句来解决这个问题(或者ISNULL,但情况下是在不同的数据库引擎更便携)

INNER JOIN datamartend.dbo.Abandoned_Call_Dim 

ON case when incoming_measure.Abandoned is null then '0'

else incoming_measure.Abandoned end

= case when Abandoned_Call_Dim.abandoned_code is null then '0'

else Abandoned_Call_Dim.abandoned_code end

这将[R用0代替null。只要你没有0代码,你应该没问题。如果你这样做,尝试-1,或者你知道的其他值不在可能的代码集中。

另一件事,如果你有一个未知的代码集,是做的加入,并加入到做:

OR (incoming_measure.Abandoned is null and Abandoned_Call_Dim.abandoned_code is null) 

这在技术上不参加 - 它交叉连接空记录(只要只有一个空关键在被放弃的调用上很重要,你很好)。

回答:

您是否可以在加入前检查是否可以使用解码函数ID。

解码(值)=加入柱

,或者尝试使用 COALESCE(REPLACE(COL,VAL_TO_B_REPLACE_IF_NOT_NULL),VALUE_TO_REPLCE_WHEN_NULL)

以上是 从维度表中设置事实表中的ID 的全部内容, 来源链接: utcz.com/qa/261961.html

回到顶部