我正在使用下面的查询,但这不完整。
select whatsapp_user_contact.*, whatsapp_task.is_intimation_sent, whatsapp_task.is_ots_sent, whatsapp_task.is_ndc_sent, whatsapp_task.ndc_media_template_date,
whatsapp_task.ots_media_template_date,whatsapp_task.intimation_media_template_date
FROM whatsapp_user_contact
left join whatsapp_task on whatsapp_user_contact.loan_account_no = whatsapp_task.loan_account_no
where whatsapp_user_contact.sms_timestamp like
'05/06/19%'
order by whatsapp_user_contact.recordid asc;
我有两张桌子。我想从一个表中选择response为yes、no或null的所有记录,但我不想从response为no的其他表中选择记录。
发布于 2020-07-16 14:40:49
看看这是否有帮助:
select u.*,
t.is_intimation_sent,
t.is_ots_sent,
t.is_ndc_sent,
t.ndc_media_template_date,
t.ots_media_template_date,
t.intimation_media_template_date
FROM whatsapp_user_contact u
left join whatsapp_task t on u.loan_account_no = t.loan_account_no
where trunc(u.sms_timestamp) = date '2019-06-05' --> dates aren't "like" anything
and (u.response in ('yes', 'no') or u.response is null) --> 1st table's responses
and t.response <> 'no' --> 2nd table's responses
order by u.recordid asc;
如果SMS_TIMESTAMP
列的数据类型是DATE
,则不要将其与字符串进行比较(因为'05/06/19%'
是字符串,而不是日期),并且不要对其使用like
。在本例中,我截断了它,这意味着将只使用日期组件;时间将被“移除”,设置为00:00:00
。
根据表的描述,如果sms_timestamp
列上有索引,这可能不是最佳选择。这是可以修复的,没有问题;为了简单起见,我让它保持不变。
https://stackoverflow.com/questions/62928184
复制相似问题