Resposta curta: não.
Resposta longa:
Bem, isso ainda é não . Mas vou tentar explicar o porquê. A partir de hoje, quando você executa a consulta, o mecanismo de banco de dados exige estar ciente da estrutura do conjunto de resultados (número de colunas, nomes de colunas, tipos de dados etc.) que a consulta retornará. Portanto, você deve definir a estrutura do conjunto de resultados ao solicitar dados do banco de dados. Pense nisso:você já executou uma consulta em que não conhecia a estrutura do conjunto de resultados de antemão?
Isso também se aplica mesmo quando você
select *
, que é apenas uma sintaxe de açúcar. No final, a estrutura de retorno é "todas as colunas dessa(s) tabela(s)". Ao montar uma string, você gera dinamicamente a estrutura que deseja, antes de solicitar o conjunto de resultados. É por isso que funciona.
Finalmente, você deve estar ciente de que montar a string dinamicamente pode teoricamente e potencialmente (embora não provável) obtenha um conjunto de resultados com colunas infinitas. Claro, isso não é possível e vai falhar, mas tenho certeza que você entendeu as implicações.
Atualizar
Encontrei isso, o que reforça as razões pelas quais não funciona.
Aqui :
Vou continuar procurando e adicionando aqui.