有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在jooq中使用别名进行排序

在下面的示例中,如何在jooq中按“金额”(这是我使用子查询创建的别名)排序?我无法理解如何阅读文档

    return context
            .select(
                    NAME,
                    sum(
                            COLUMN_ONE.minus(COLUMN_TWO)
                    ).as("amount")
            )
            .from(MYTABLE)
            .groupBy(MYTABLE.NAME)
            .fetchInto(MyClass.class);

共 (1) 个答案

  1. # 1 楼答案

    好的,我自己找到了解决办法。为此,必须创建一个字段:

    Field<BigDecimal> amount = field(
                    sum(
                         COLUMN_ONE.minus(COLUMN_TWO)
                    ).as("amount")
            );
    

    最后在原始查询中使用它:

        return dslContext
                .select(
                        TRANSACTIONS.COIN_NAME,
                        amount
                )
                .from(MYTABLE)
                .groupBy(MYTABLE.NAME)
                .orderBy(coinAmount.desc())
                .fetchInto(MyClass.class);