Меня спросили об этом на интервью, и я хотел бы получить отзывы ...
У меня есть хранимая процедура, которая принимает параметр IsActive varchar, который является строкой «YES» или «NO».
Хранимая процедура запросит таблицу, в которой есть столбец Active, с типом данных bit. Если параметр равен «YES», то он вернет все строки с битовым значением активного столбца, равным 1, иначе для «NO» он вернет все строки с активным битовым значением столбца, равным 0.
Лучше всего преобразовать значение параметра из YES / NO в 1/0 или преобразовать данные таблицы из 1/0 в YES / NO при запросе?
Будет ли ответ таким же, если типы данных поменяны местами (1/0 передается, ДА / НЕТ сохраняется в таблице)?
Я бы подумал, что лучше преобразовать параметр из «ДА» / «НЕТ» в 1/0, чтобы избежать необходимости хранить больше занимающих место varchars в базе данных.
Я также думаю, что запрос, который фильтрует по типам битов, будет более эффективным при поиске, чем тот, который фильтрует по varchars.