结合mysql中的前两种情况

lb3vh1jj  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(221)

我有一个mysql查询部分

$PendingNewquery = "
        CASE
            WHEN s.pending='Y' THEN 'P'
            WHEN MAX(fqc.ChangeTime) IS NULL THEN 'N' 
            WHEN s.Pending='Y' OR MAX(fqc.ChangeTime) IS NULL THEN 'PN'
        END

我没有得到任何结果的“pn”结合了前两种情况。我怎么能不用 WHERE ?

6l7fqoea

6l7fqoea1#

您需要修改您的案例陈述,如:

CASE
    WHEN s.Pending='Y' AND MAX(ChangeTime) IS NULL THEN 'PN' 
    WHEN s.pending='Y' THEN 'P'
    WHEN MAX(fqc.ChangeTime) IS NULL THEN 'N'  
END

我相信使用“and”并将最后一行移到最上面在您的情况下会更有意义,因为如果使用“or”作为结果,您将在主查询中看到pn或null。但是,如果您坚持使用或,那么:

CASE
    WHEN s.pending='Y' THEN 'P'
    WHEN MAX(fqc.ChangeTime) IS NULL THEN 'N' 
    WHEN s.Pending='Y' OR MAX(ChangeTime) IS NULL THEN 'PN' 
END

相关问题