如果 sql where 条件中的值为空,我需要使用默认值,如下所示。
SELECT sla.incident_generated_sla from eventedge_events_sla sla where e.client_id=sla.client_id and sla.priority_id=e.priority_id
我使用了下面的查询但不起作用。
(SELECT sla.incident_generated_sla from eventedge_events_sla sla where e.client_id=sla.client_id and sla.priority_id=(IsNull(e.priority_id,"2")))
最佳答案
SELECT sla.incident_generated_sla from eventedge_events_sla sla
where e.client_id=sla.client_id and sla.priority_id=e.priority_id
(SELECT sla.incident_generated_sla from eventedge_events_sla sla
where e.client_id=sla.client_id and sla.priority_id=(IsNull(e.priority_id,"2")))
你已经快成功了。
根据您自己的尝试检查此更正:
SELECT sla.incident_generated_sla from eventedge_events_sla sla
where e.client_id=sla.client_id and sla.priority_id=ISNULL(e.priority_id,2)
现在我不知道你的“e”是什么,但如果这是用你正在寻找的 client_id 声明的,它应该可以工作。
仔细看看我对 ISNULL 的更正。
编辑:评论后这个答案是正确的;
SELECT
e.event_start_time,
sla.incident_generated_sla
FROM
eventedge_events_sla sla
left outer join eventedge_events e
ON e.client_id = sla.client_id
AND isnull(e.priority_id,2) = sla.priority_id
关于mysql - 设置sql中where条件的默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46764181/