【发布时间】:2017-09-05 06:19:26
【问题描述】:
我有一种情况,我需要一个 MySQL 查询,它可以通过两个条件选择一行。假设我有三列“ID”、“QTY”、“PRICE”。用这种逻辑过滤的正确方法是什么:
IF MIN(QTY) = 0, THEN MIN QTY AS qty //(*and any 'PRICE' value*)//,
ELSE SELECT MAX(PRICE) AS prc //(*and any 'QTY' value*)//.
我发现“CASE WHEN”几乎完全符合我的需要,但我遇到的问题是,在这样的语句中只能定义一个变量。 如果下面的语句能以某种方式改写为上面的逻辑,那就太好了。
CASE WHEN MIN(QTY) = 0 THEN MIN(QTY) ELSE MAX(QTY) END AS qty
【问题讨论】:
-
您不能在选择子句plz check this中使用任何控制函数来定义两个变量
标签: mysql variables filter case multiple-columns