select3<A, B, C> method

MssqlProjectedQuery<(A, B, C)> select3<A, B, C>(
  1. (MssqlExpression, MssqlExpression, MssqlExpression) select(
    1. TFields fields
    )
)

Three typed columns as a Dart record (A, B, C).

Implementation

MssqlProjectedQuery<(A, B, C)> select3<A, B, C>(
  (MssqlExpression, MssqlExpression, MssqlExpression) Function(TFields fields)
  select,
) {
  final t = select(fields);
  return this.select(
    MssqlProjection<(A, B, C)>(
      name: 'select3',
      columns: <MssqlProjectionColumn>[
        MssqlProjectionColumn('c0', t.$1),
        MssqlProjectionColumn('c1', t.$2),
        MssqlProjectionColumn('c2', t.$3),
      ],
      map: (row) => (
        MssqlProjection.decode<A>(
          row,
          0,
          projection: 'select3',
          column: 'c0',
          expression: t.$1,
        ),
        MssqlProjection.decode<B>(
          row,
          1,
          projection: 'select3',
          column: 'c1',
          expression: t.$2,
        ),
        MssqlProjection.decode<C>(
          row,
          2,
          projection: 'select3',
          column: 'c2',
          expression: t.$3,
        ),
      ),
    ),
  );
}