Неправильный регистр в имени столбца подзапроса приводит к неверным результатам, но не к ошибке
Используя 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
Я получаю неверное имя столбца.
Конечно, я должен получить эту ошибку в первом случае?
Это связано с сопоставлением? БД - это двоичное сопоставление. Однако сервер нечувствителен к регистру. Мне кажется, что серверный компонент говорит: «Этот код в порядке» и не позволяя БД сказать, что поле неправильное имя ..?
Какие у меня варианты решения?