我将 NestJS 与 TypeORM 和 Postgres 数据库结合使用。
我正在计算汽车下次需要检查多少公里,并使用该值来订购我从中选择的汽车列表。
到目前为止,这工作得很好,但是当我尝试使用skip和take对结果进行分页时,我收到错误:
ERROR [ExceptionsHandler] for SELECT DISTINCT, ORDER BY expressions must appear in select list
这是代码:
const dbQuery = this.carsRepository
.createQueryBuilder('car')
.addSelect(
`(floor((car.milage + 5000) / vehicleType.inspectionIntervalInKm) * vehicleType.inspectionIntervalInKm - car.milage) as nextInspectionDueInKm`,
)
.leftJoinAndSelect('car.vehicleType', 'vehicleType')
.orderBy('nextInspectionDueInKm', Order.ASC)
.skip(page * limit)
.take(limit);
const result = await dbQuery.getMany()
我用谷歌搜索并尝试了很多方法,但找不到有效的解决方案。所以也许这里有人可以帮助我解决这个小问题:)
你必须像这样在变量中添加双引号
.addSelect(
`(floor((car.milage + 5000) / vehicleType.inspectionIntervalInKm) * vehicleType.inspectionIntervalInKm - car.milage) as "nextInspectionDueInKm"`,
)