@@ -767,7 +767,7 @@ export abstract class BaseCrudDialect<Schema extends SchemaDef> {
767767 invariant ( v === 'asc' || v === 'desc' , `invalid orderBy value for field "${ field } "` ) ;
768768 result = result . orderBy (
769769 ( eb ) => aggregate ( eb , buildFieldRef ( model , k , modelAlias ) , field as AGGREGATE_OPERATORS ) ,
770- sql . raw ( this . negateSort ( v , negated ) ) ,
770+ this . negateSort ( v , negated ) ,
771771 ) ;
772772 }
773773 continue ;
@@ -780,7 +780,7 @@ export abstract class BaseCrudDialect<Schema extends SchemaDef> {
780780 invariant ( v === 'asc' || v === 'desc' , `invalid orderBy value for field "${ field } "` ) ;
781781 result = result . orderBy (
782782 ( eb ) => eb . fn . count ( buildFieldRef ( model , k , modelAlias ) ) ,
783- sql . raw ( this . negateSort ( v , negated ) ) ,
783+ this . negateSort ( v , negated ) ,
784784 ) ;
785785 }
786786 continue ;
@@ -803,10 +803,12 @@ export abstract class BaseCrudDialect<Schema extends SchemaDef> {
803803 ( value . sort === 'asc' || value . sort === 'desc' ) &&
804804 ( value . nulls === 'first' || value . nulls === 'last' )
805805 ) {
806- result = result . orderBy (
807- fieldRef ,
808- sql . raw ( `${ this . negateSort ( value . sort , negated ) } nulls ${ value . nulls } ` ) ,
809- ) ;
806+ result = result . orderBy ( fieldRef , ( ob ) => {
807+ const dir = this . negateSort ( value . sort , negated ) ;
808+ ob = dir === 'asc' ? ob . asc ( ) : ob . desc ( ) ;
809+ ob = value . nulls === 'first' ? ob . nullsFirst ( ) : ob . nullsLast ( ) ;
810+ return ob ;
811+ } ) ;
810812 }
811813 } else {
812814 // order by relation
0 commit comments