Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Existe uma solução genérica para expressar uma lista de colunas derivadas no Oracle (e MySQL)?


Para uma solução MySQL, você pode usar um UNION para definir os nomes de todas as colunas em um termo de consulta de linha zero e, em seguida, consultar algo mais complexo:
SELECT null AS a, null AS b, null AS c FROM dual WHERE false
UNION ALL
SELECT <expr>, <expr>, <expr>
FROM <realtable>...

Apenas o primeiro termo de consulta de um UNION define os nomes das colunas de toda a consulta. Os nomes de coluna (ou a falta deles) em termos de consulta subsequentes não afetam os nomes de coluna finais.

Você precisa saber o número de colunas, mas deve ser muito fácil manter os dois termos de consulta separados. Até onde sei, funciona tanto no Oracle quanto no MySQL (no entanto, testei apenas no MySQL, não no Oracle).