我有两个表“客户”和“激活”,我想加入。这里是他们的结构:根据条件SQL查询连接
CUSTOMER Activation
------------ -------------
Id Name EntityId Date_Created Type
1 A 1 2012 EMAIL
2 B 2 2011 SMS
3 C
现在,我想加入这两个表customer.Id = Activation.EntityId。不过,我想我最后的表结构是这样的:
Id Name Date_Email Date_SMS
1 A 2012 NULL
2 B NULL 2011
基本上,列Date_Email和Date_SMS都来自Activation.Date_Created列。如果Activation.Type是EMAIL,我将Date_Email设置为最终结果Date_created并将Date_SMS设置为null。如果Activation.type是SMS,我以另一种方式做。
我现在所拥有的是这样的:
SELECT Customer.Id, Name, Date_Created AS Date_EMail, DATE_Created AS Date_SMS
from Customer
inner join Activation ON Customer.Id = Activation.EntityId;
现在,我需要根据Activation.Type列的if-else条件。我对此很新,而且我一直无法通过谷歌搜索来弄清楚这一点。我正在使用Oracle XE数据库btw
有人可以帮助我吗?感谢
对于每种类型和EntityId组合,“Activation”中是否只有一行? –
@lc。是的,EntityId是在客户表中引用Id的外键。对不起,我应该提到 – CuriousCoder
@hari,你确定这是一个很好的设计吗?我个人不鼓励做这样的事情。 – nothrow