nestjs-typeorm-paginate icon indicating copy to clipboard operation
nestjs-typeorm-paginate copied to clipboard

Counter error on queries with orderBy on SQLServer

Open fuadmuhtaz opened this issue 3 years ago • 1 comments

Hello all

When making queries order by on SQLServer, method countQuery need set orderBy to undefined to get expected result

const queryBuilder = this.fakultasRepository.createQueryBuilder('fakultas)
    .innerJoin(ProgramStudiEntity, 'programStudi', 'fakultas.idProdi = programStudi.id')
    .select([
        'fakultas.id AS id',
        'fakultas.nama AS namaFakultas',
        'fakultas.idProdi AS idProdi',
        'programStudi.nama AS namaProdi'
    ])
    .orderBy('programStudi.nama', 'ASC');

return await paginateRaw(queryBuilder, paginationOptions);

I will get Error: The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP, OFFSET or FOR XML is also specified.

I am modify countQuery and its work

const totalQueryBuilder = queryBuilder.clone();
    totalQueryBuilder
        .skip(undefined)
        .limit(undefined)
        .offset(undefined)
        .take(undefined)
        .orderBy(undefined);

Some people say in forum need to remove order by https://social.msdn.microsoft.com/Forums/en-US/8480e6c2-e045-4ac1-a2a3-70268011b63d/the-order-by-clause-is-invalid-in-views-inline-functions-derived-tables-subqueries-and-common?forum=transactsql

fuadmuhtaz avatar Jan 16 '22 01:01 fuadmuhtaz

#706

bashleigh avatar Apr 19 '22 12:04 bashleigh