Caso errado no nome da coluna da subconsulta causa resultados incorretos, mas nenhum erro

Usando o SQL Server Management Studio, estou obtendo alguns resultados indesejáveis ​​(parece um bug para mim ..?)

Se eu usar (FIELD em vez de campo para o outro_table):

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

Eu obtenho todos os resultados de main_table.

Usando o caso correto:

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

Eu obtenho os resultados esperados onde o campo aparece em outro.

Executando a subconsulta sozinha:

SELECT FIELD FROM other_table

Eu recebo um erro de nome de coluna inválido.

Certamente eu deveria ter esse erro no primeiro caso?

Isso está relacionado ao agrupamento? O banco de dados é o agrupamento binário. O servidor não faz distinção entre maiúsculas e minúsculas. Parece-me que o componente do servidor está dizendo "este código está OK" e não permitindo que o DB diga que o campo é o nome errado ..?

Quais são minhas opções para uma solução?

questionAnswers(2)

yourAnswerToTheQuestion