从维度表中设置事实表中的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