mysql - 设置sql中where条件的默认参数

标签 mysql sql null

如果 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/

相关文章:

mySQL:查找 VARCHAR 字段中字符串的重复项?

php - 我只需要检索登录用户的记录

php - 返回不同表中两个 MySQL 列之间的差异

mysql - 错误(错误代码 : 1175) during executing update command on table using MySQL Workbench 5. 2

MySQL - 使用 JOIN 和 WHERE 确定平均小时数

c - 如何检查指针 (void) 的值不为零(尝试取消引用通用指针)

postgresql - 为什么在检查行类型时 IS NOT NULL 为 false?

mysql - SQL 连接 2 个表,其 ID 位于一行

php - 如何更新两个独立 ID 的列?

LinkedList输出null的Java实现