mysql - 案例模式下如何获取订单数量
问题描述
我有一个查询:
SELECT REPLACE(column1,'a','b') AS col ORDER BY CASE
WHEN col like '%door%' THEN 1
WHEN col like '%window%' THEN 2
WHEN col like '%book%' THEN 3
ELSE 4
END
我想知道哪一行在订单号 1 中,哪一行在订单号 2 中,以及......如何找到它?
解决方案
对于上面的评论,您可以CASE
在 select 子句中添加第二个表达式:
SELECT
REPLACE(column1,'a','b') AS col,
CASE WHEN REPLACE(column1,'a','b') NOT LIKE '%door%' AND
REPLACE(column1,'a','b') NOT LIKE '%window%'
THEN 'special message' END AS msg
FROM yourTable
ORDER BY
CASE WHEN col like '%door%' THEN 1
WHEN col like '%window%' THEN 2
WHEN col like '%book%' THEN 3
ELSE 4 END;
推荐阅读
- python - 如何在 Pyventory 中重用自动计算的属性?
- angular - 通过Angular 2中的打字稿文件中的方法清除所有输入int html文件
- r - 如何在 r 中不使用 cumprod 的情况下累积乘法向量?
- floating-point - 如果这里的输出是“不相等”,那么为什么使用双精度而不是浮点数不能给出相同的输出?
- javascript - 使用 Typescript 在 React useEffect() 中对数组进行排序
- c# - Unity UI 对象不可见
- angularjs - 如何在Tomcat 9的rewrite.config文件中为多个角度项目添加多个重写规则
- apollo - Apollo typepolicies 如何读取 Query 的兄弟字段?
- javascript - 输入字段未从下拉选择中填充
- neovim - coc.nvim 需要 Python 吗?