compile method

  1. @override
String compile(
  1. MssqlParameterAllocator parameters,
  2. MssqlDialect dialect
)
override

Writes this expression's SQL, binding any values through parameters.

Implementation

@override
String compile(MssqlParameterAllocator parameters, MssqlDialect dialect) {
  final left = operand.compile(parameters, dialect);
  return switch (operator) {
    MssqlOperator.eq =>
      '($left >= ${parameters.bind(_lower)} AND '
          '$left < ${parameters.bind(_upper)})',
    // NULL rows match neither side, exactly as they do not match `<>`.
    MssqlOperator.ne =>
      '($left < ${parameters.bind(_lower)} OR '
          '$left >= ${parameters.bind(_upper)})',
    MssqlOperator.lt => '$left < ${parameters.bind(_lower)}',
    MssqlOperator.lte => '$left < ${parameters.bind(_upper)}',
    MssqlOperator.gt => '$left >= ${parameters.bind(_upper)}',
    MssqlOperator.gte => '$left >= ${parameters.bind(_lower)}',
  };
}