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?