Eu tenho um banco de dados com cerca de 100 tabelas e preciso criar uma consulta de junção para obter dados específicos de duas delas. Eu conheço um, mas não o outro. Basicamente, preciso de algo como:
select <tables> from <database> where exists table.column name;
Como posso fazer isso?
Respostas:
Usando
information_schema
Essa é a maneira entre RDBMS compatível com os padrões.
Você pode ver isso documentado
fonte
INFORMATION_SCHEMA
, pelo nosso próprio @AaronBertrand ( sqlblog.com/blogs/aaron_bertrand/archive/2011/11/03/... )information_schema.columns
desde 2006. Uma década antes de implementá-los. Se o Microsoft SQL não suporta o padrão, talvez devêssemos procurá-lo. Outros fazem.Para o IBM DB2, você usaria o seguinte:
Observe que, no DB2, os nomes das colunas estarão em maiúsculas, a menos que tenham sido definidos dentro de aspas duplas com algo diferente de maiúsculas. Então você também deve fornecer a caixa exata do nome da coluna.
fonte
WHERE UPPER(colname) = 'COLUMN_NAME'
.A consulta abaixo deve fornecer o que você está procurando:
Se você estiver procurando colunas com um nome exato, substitua a
WHERE
cláusula por:fonte
em Teradata 15:
fonte
SQL sql / plsql:
fonte
Por favor, passe o nome da coluna para esta variável:
$COLUMN_NAME
fonte
// Selecione a tabela Particular:
fonte
Para SQL Server:
fonte