【问题标题】:Ordering subsections of case statement排序案例陈述的小节
【发布时间】:2016-12-16 02:08:30
【问题描述】:

所以我有一个按以下排序顺序的查询:

String sortOrder = "CASE " + ICCGoal.COLUMNS.category
        + " WHEN '" + GoalCategory.PHYSICAL_ACTIVITY.getEncodedValue() + "' THEN 1"
        + " WHEN '" + GoalCategory.SLEEP.getEncodedValue() + "' THEN 2"
        + " WHEN '" + GoalCategory.SOCIAL.getEncodedValue() + "' THEN 3"
        + " WHEN '" + GoalCategory.MOOD.getEncodedValue() + "' THEN 4"
        + " WHEN '" + GoalCategory.ENERGY.getEncodedValue() + "' THEN 5"
        + " END";

有没有对返回值的部分进行排序?

目前,无论存储顺序如何,我都会在“PHYSICAL_ACTIVITY”之后和“SOCIAL”目标之前返回所有“SLEEP”类型的目标。

是否可以按创建日期排序返回它们?或者只是以不同于默认的方式订购?

【问题讨论】:

    标签: sql sqlite select sql-order-by


    【解决方案1】:

    只需添加一个二级排序标准:

    String sortOrder = "CASE " + ICCGoal.COLUMNS.category
            + " WHEN '" + GoalCategory.PHYSICAL_ACTIVITY.getEncodedValue() + "' THEN 1"
            + " WHEN '" + GoalCategory.SLEEP.getEncodedValue() + "' THEN 2"
            + " WHEN '" + GoalCategory.SOCIAL.getEncodedValue() + "' THEN 3"
            + " WHEN '" + GoalCategory.MOOD.getEncodedValue() + "' THEN 4"
            + " WHEN '" + GoalCategory.ENERGY.getEncodedValue() + "' THEN 5"
            + " END" // Original ordering from the OP
            + ", date_created"; // Secondary term
    

    【讨论】:

    • 太棒了。这么简单的解决方案。我不知道你可以用逗号链接其他标准。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2017-10-19
    • 2023-04-10
    • 2010-10-30
    • 2016-05-13
    • 2016-02-21
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    相关资源
    最近更新 更多