Я не уверен, было ли сделано что-то особенное с базой данных, с которой я работаю, но, оптимизируя старый код, я наткнулся на следующий (санированный) запрос:
SELECT Code
FROM GovernmentThing
WHERE IsGovernment = 'True'
Я проверил тип данных на IsGovernment
, предполагая, что это varchar(5)
или что-то подобное, только чтобы обнаружить, что это поле bit
.
Затем я предположил, что код неправильный, и проверил, выполнив запрос, возвращающий поле IsGovernment
. К моему большому удивлению, я обнаружил, что запрос возвращал только те строки, где IsGovernment
было установлено в 1! Так как я тогда задавался вопросом, что вернется проверка на строковый литерал 'False'
, я проверил, просто чтобы найти, что возвращаются только нулевые значения !!
Возможно, я что-то пропустил где-то в обновлениях TSQL или что есть какая-то хитрая конфигурация, которая делает эту работу, но ... я никогда не слышал об этом раньше.
Может кто-нибудь, пожалуйста, просветите меня - это где-то задокументировано, или ???
SQL Server 2012