Teradata SQL 3变量根据条件分为两个变量

时间:2018-10-23 14:58:49

标签: sql teradata teradata-sql-assistant

我有一张桌子,上面有3个不同的电话号码,我想根据电话号码是固定电话还是固定电话将其缩减为两个电话号码。

该表的格式如下:

Sample Data with Output (Phone1 & Phone2)

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应该填充白天电话号码。 我做错了什么吗?

0 个答案:

没有答案