【问题标题】:How to use "IN" with "CASE Statement" in WHERE Clause?如何在 WHERE 子句中使用“IN”和“CASE 语句”?
【发布时间】:2018-12-08 17:36:42
【问题描述】:

下面是我的 MYSQL 查询

select * from `ordermaster` where OrderStatus in (case when 1= 0 then OrderStatus else ("Completed","Cancelled") end)

如您所见,第一个条件是 ALL,下一个条件是特定的。

如果满足条件 1,那么我想返回整个数据 w.r.t orderstatus 但如果满足条件,那么我只想要 OrderStatus 为“已完成”或“已取消”的记录,但这会产生问题。我可以直接使用“IN”,但不能使用“CASE”语句。

谢谢, 拉胡尔

【问题讨论】:

  • 您能否提供一个数据样本和预期输出来说明您的需求?
  • 您好,我不关心数据,也不关心数据。这只是语法。查看条件 1 是否满足,然后我想返回整个数据 w.r.t orderstatus 但如果条件为 false/2nd,那么我只想要 OrderStatus 为“已完成”或“已取消”的记录。
  • 好的,condition 1 是什么,因为我只看到这个when 1 = 0 而那个条件永远是false

标签: mysql wildcard where-clause case-statement


【解决方案1】:
SELECT ordermaster
    CASE 
        WHEN OrderStatus = 1 THEN 'Completed'
        WHEN OrderStatus = 0 THEN 'Cancelled'
    END AS STATUS 
FROM ordermaster;

【讨论】:

    猜你喜欢
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    相关资源
    最近更新 更多