mysql - 在 MySql 的其他列中使用新的派生列值
问题描述
我有一个包含许多连接的查询,并且有一种情况是我必须在另一个计算列中使用 CASE 结果值。但我不想使用任何嵌套查询有什么可以实现这一点吗?
也许我可以通过使用以下查询 Ex 更好地解释:
SELECT
CASE
WHEN extras.is_doubled THEN 2
WHEN extras.is_normal 1
ELSE 0.5
END as multiplier,
life x multiplier,
score x multiplier
FROM
table
inner join
...
inner join
...
inner join
解决方案
您的查询应如下所示:
SELECT
A.*,
A.life * A.multiplier,
A.score * A.multiplier
FROM (
SELECT
*,
CASE
WHEN extras.is_doubled THEN 2
WHEN extras.is_normal THEN 1
ELSE 0.5
END as multiplier,
FROM
table
inner join
...
inner join
...
inner join
) A;
推荐阅读
- azure - 使用 azure 事件中心触发函数批量接收事件中心事件的可能性
- ios - 执行人脸识别时出现opencv灯问题
- javascript - 如何使用函数添加 api 键值,可能是语法错误
- php - 如何使用 php artisan serve 设置域名
- java - 在 Spring Boot Rest Controller 中解析 Json 数组初始化单个对象
- c# - MVC Core 将 ViewModel 绑定到模型
- java - 打印网格时Java索引越界异常
- reporting-services - 在终端 PC 上通过最终用户登录访问报表管理器时出现空白页
- pyspark - WARN TaskMemoryManager:302 - 分配页面失败(16777216 字节),再试一次
- git - 如何在 Git 中以 root 身份克隆特定的子目录?