gpt4 book ai didi

MySQL - 按日期 ASC 和 DESC 排序,具体取决于其他字段

转载 作者:行者123 更新时间:2023-11-29 12:56:59 27 4
gpt4 key购买 nike

我的表中有这些行...

id  task_type   task_date
1 1 01/15/2010
2 2 01/18/2010
3 1 01/18/2010
4 2 01/16/2010
6 1 01/16/2010
8 1 01/17/2010
9 2 01/17/2010

我想以特定方式对它们进行排序:当task_type=1时按ASC排序,当task_type=2时按DESC排序

id  task_type   task_date
1 1 01/15/2010
6 1 01/16/2010
8 1 01/17/2010
3 1 01/18/2010
2 2 01/18/2010
9 2 01/17/2010
4 2 01/16/2010

这可能吗?我一直在寻找条件查询,但我所能得到的只是语法错误......

这是我无法使其正常工作的查询:

SELECT id, task_type, task_date 
From Tasks
ORDER BY CASE WHEN task_type=1 THEN
task_type ASC, task_date ASC, hour ASC, priority DESC, id ASC
WHEN task_type=2 THEN
task_type ASC, task_date DESC, hour ASC, priority DESC, id ASC
END

最佳答案

我不确定estado是什么,但你的逻辑似乎是:

ORDER BY task_type,
(CASE WHEN task_type = 1 THEN task_date END) ASC,
(CASE WHEN task_type = 1 THEN hour END) ASC,
(CASE WHEN task_type = 1 THEN priority END) DESC,
(CASE WHEN task_type = 1 THEN id END) ASC,
(CASE WHEN task_type = 2 THEN task_date END) DESC,
(CASE WHEN task_type = 2 THEN hour END) ASC,
(CASE WHEN task_type = 2 THEN priority END) DESC,
(CASE WHEN task_type = 2 THEN id END) ASC

这可以简化为:

ORDER BY task_type,
(CASE WHEN task_type = 1 THEN task_date END) ASC,
(CASE WHEN task_type = 2 THEN task_date END) DESC,
hour ASC, priority DESC, id ASC

关于MySQL - 按日期 ASC 和 DESC 排序,具体取决于其他字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23913054/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com