Возможно, я что-то пропустил, но мне все еще кажется странным, почему невозможно использовать агрегаты max
и min
в полях бит. Поэтому, если я попытаюсь сделать что-то вроде этого:
declare @temp table (data bit)
insert into @temp
select 1 union all
select 0
select max(data) from @temp
Я получу ошибку Operand data type bit is invalid for max operator.
Но если я сделаю что-то вроде этого:
declare @temp table (data bit)
insert into @temp
select 1 union all
select 0
select top 1 * from @temp order by data desc
Он отлично работает, поэтому SQL Server знает, как сортировать поля бит. Но возможность заказывать данные означает, что мы можем получить максимум или минимум. Какова причина этого ограничения?