mysql - MySQL让它在case语句中识别0小于A
问题描述
如果 ladder_value_lh2 是 < 或 > ladder_value_lh1,我写了一个 case 语句返回:
CASE
WHEN ladder_value_lh1>ladder_value_lh2 THEN 'up'
WHEN ladder_value_lh1< ladder_value_lh2 THEN 'down'
WHEN ladder_value_lh2 IS NULL THEN 'No Change'
END AS advocacy_moved_up_down_nochange,
阶梯值由 0、A、B、C1、C2、D 和 E 组成。
现在,它不承认 0 小于 A (等等)。因此,如果 ladder_value_lh1 为 0,并且小于 B 的 ladder_value_lh2,我预计会下降;现在,它正在返回“无变化”。
我如何告诉它 0 小于 A (等)?
谢谢
解决方案
我建议你使用field()
s:
(case sign(field(ladder_value_lh1, '0', 'A', 'B', 'C1', 'C2', 'D', 'E') - field(ladder_value_lh2, '0', 'A', 'B', 'C1', 'C2', 'D', 'E'))
when 1 then 'up'
when -1 then 'down'
when 0 then 'no change'
else 'null value'
end)
推荐阅读
- unreal-engine4 - 如何在 UE4 中同时实现 RTS 风格的摄像机移动和单元选择?
- php - Laravel sum 加入条件
- drake - Error building Drake from source on deprecation warnings
- c++ - 析构函数必须对默认初始化的类成员可用(公共)或完全有效吗?
- flutter - 从 Flutter 中的 firestore 文档中延迟加载数据
- piral - 我如何在 piral 中使用完整的 Angular 应用程序作为 pilet
- javascript - JS上的粘滞块
- php - 如何处理 Symfony 5.3 弃用?
- python - InvalidArgumentError:需要可广播的形状 [Op:Mul]
- python - 在请求中运行并忘记