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

SQL Select incluindo tipo de dados e valores de dados


Você pode SELECT EMPLOYEE.COL1, INFO.DATA_TYPE FROM EMPLOYEE, INFORMATION_SCHEMA.COLUMNS INFO WHERE INFO.TABLE_NAME='EMPLOYEE' AND COLUMN_NAME='COL1' Mas para selecionar mais campos, você teria que adicionar outra instância de INFORMATION_SCHEMA.COLUMNS novamente com um alias diferente.

Mas você não deve fazer isso por muitas razões.

Tecnicamente:CROSS JOIN (as tabelas em FROM listadas simplesmente com uma vírgula) é muito estressante para o servidor de banco de dados. FROM T1, T2 emparelha todas as linhas de T1 com todas as linhas de T2 e examina as linhas de resultado. Se T1 tiver n linhas e T2 tiver m, o resultado terá n*m linhas.

Logicamente 1:Você não deve precisar que essas informações sejam retornadas. Quando você insere uma consulta (um SELECT) o esquema retornado é conhecido; a consulta determina quais tipos de dados são as colunas de resultados. Logicamente 2:Como todas as linhas têm os mesmos tipos de dados nas colunas, você não precisa que as informações de tipo sejam retornadas em todas as linhas. Por exemplo. seu exemplo retornando dados de 1.000 funcionários transferiria desnecessariamente em todas as linhas que o campo AGE seja INTEGER, o NAME seja VARCHAR e assim por diante...

Se você de alguma forma não conhecer o esquema do resultado (por exemplo, por causa de consultas geradas ou similares), a solução acima não o ajudaria.