我有一张桌子,里面有 3 个不同的电话号码,我想根据号码是手机还是座机将其减少到两个电话号码。
该表的格式如下:
CASE WHEN TR1.PHONE_TYPE = 'M' THEN 'SOURCE_FULL_MOBILE_NO'
WHEN TR1.PHONE_TYPE <> 'M' AND TR2.PHONE_TYPE = 'M' THEN 'SOURCE_DAYTIME_NUMBER'
WHEN TR3.PHONE_TYPE = 'M' AND TR1.PHONE_TYPE <> 'M' AND TR2.PHONE_TYPE <> 'M' THEN 'SOURCE_EVENING_NUMBER'
WHEN TR1.PHONE_TYPE = 'L' AND TR2.PHONE_TYPE <> 'M' AND TR3.PHONE_TYPE <> 'M' THEN 'SOURCE_FULL_MOBILE_NUMBER'
WHEN TR2.PHONE_TYPE = 'L' AND TR1.PHONE_TYPE <> 'M' AND TR3.PHONE_TYPE <> 'M' THEN 'SOURCE_DAYTIME_NUMBER'
WHEN TR3.PHONE_TYPE = 'L' AND (TR1.PHONE_TYPE <> 'M' OR TR1.PHONE_TYPE IS NULL ) AND (TR2.PHONE_TYPE <> 'M' OR TR2.PHONE_TYPE IS NULL ) THEN 'SOURCE_EVENING_NUMBER'
else null
END as Phone1
问题是我相信我应该能够使用逻辑表对此进行编程......但是,当我运行上面的部分时,如果 Mobile 为 null 并且 Evening number 为 null 并且 Daytime 填充了 phone1 和 phone2 都为 null。但是,电话 1 应填充白天电话号码。有什么我做错了吗?