Неправильный регистр в имени столбца подзапроса приводит к неверным результатам, но не к ошибке

Используя SQL Server Management Studio, я получаю некоторые нежелательные результаты (мне кажется, что это ошибка ..?)

Если я использую (FIELD, а не поле для other_table):

SELECT * FROM main_table WHERE field IN (SELECT FIELD FROM other_table)

Я получаю все результаты из main_table.

Используя правильный случай:

SELECT * FROM main_table WHERE field IN (SELECT field FROM other_table)

Я получаю ожидаемые результаты, когда поле появляется в другом.

Выполнение подзапроса самостоятельно:

SELECT FIELD FROM other_table

Я получаю неверное имя столбца.

Конечно, я должен получить эту ошибку в первом случае?

Это связано с сопоставлением? БД - это двоичное сопоставление. Однако сервер нечувствителен к регистру. Мне кажется, что серверный компонент говорит: «Этот код в порядке» и не позволяя БД сказать, что поле неправильное имя ..?

Какие у меня варианты решения?

Ответы на вопрос(2)

Ваш ответ на вопрос