选择查询案例,按条件/标准分配两个变量

时间:2017-09-05 06:19:26

标签: mysql variables filter case multiple-columns

我有一种情况,我需要一个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

1 个答案:

答案 0 :(得分:0)

假设您有一个查询

SELECT MIN(QTY), MAX(QTY) , MAX(PRICE)
from my_table 

你使用

SELECT MIN(QTY), MAX(QTY) , MAX(PRICE), 
    case when MIN(QTY) = 0 THEN MIN(QTY) ELSE   MAX(PRICE) END prc
from my_table 

或避免使用中间列

SELECT  case when MIN(QTY) = 0 THEN MIN(QTY) ELSE   MAX(PRICE) END prc
from my_table