【问题标题】:select query case, assigning two variables by conditions / criteria选择查询案例,按条件/条件分配两个变量
【发布时间】: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


【解决方案1】:

假设你有一个查询

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 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    • 2016-03-11
    • 2017-09-24
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多