【问题标题】:WHERE clause inside CASE statementCASE 语句中的 WHERE 子句
【发布时间】:2014-09-08 06:02:13
【问题描述】:

我可以在 CASE 语句中使用 WHERE 子句,如下所示?

CASE WHEN A=1 THEN B WHERE C=0 ELSE A END

【问题讨论】:

  • 不,你可以用CASE WHEN A=1 AND C=0做一些事情
  • 不,你只是重复when
  • 不清楚你想在哪里使用它。您是在尝试使用这些条件过滤结果(WHERE 子句),还是有条件地选择列?您可以在 WHERE 子句中使用布尔逻辑而不是 CASE 来执行此操作。
  • 每一行数据都根据第一个时间进行评估,如果为真则停止,如果为假则进入下一个何时,如果为真则立即停止,如果为假则进入下一个 when... 直到所有 when 被评估然后它进入'else'。每个时间有点像“哪里”

标签: mysql sql


【解决方案1】:

在你的情况下试试这个

CASE WHEN (A=1 AND C=0) THEN B ELSE A END AS Field_Name

【讨论】:

    【解决方案2】:
    CASE A 
    WHEN 1 THEN A 
    WHEN 2 THEN B 
    ELSE C END
    

    link查看更多

    【讨论】:

    • 谢谢大家的建议.. :)
    【解决方案3】:

    你也可以这样做:

    CASE WHEN A=1 THEN B WHEN B=1 THEN A ELSE C END
    

    【讨论】:

      【解决方案4】:

      不,只是使用

      CASE WHEN A=1 AND C=0 THEN B ELSE A END
      

      【讨论】:

        【解决方案5】:

        你可以简单地写

        CASE WHEN A=1 AND C=0 THEN B ELSE A END;
        

        【讨论】:

          猜你喜欢
          • 2020-03-26
          • 2017-04-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-08-09
          相关资源
          最近更新 更多