Tengo una base de datos con aproximadamente 100 tablas y necesito crear una consulta de unión para obtener datos específicos de dos de ellas. Conozco uno pero no el otro. Básicamente necesito algo como:
select <tables> from <database> where exists table.column name;
¿Cómo puedo hacer esto?
Respuestas:
Utilizando
information_schema
Esta es la forma cruzada de RDBMS compatible con los estándares para hacerlo.
Puedes ver esto documentado
fuente
INFORMATION_SCHEMA
, por nuestro propio @AaronBertrand ( sqlblog.com/blogs/aaron_bertrand/archive/2011/11/03/… )information_schema.columns
desde 2006. Una década completa incluso antes de implementarlas. Si Microsoft SQL no es compatible con el estándar, quizás deberíamos considerar molestarlos. Otros lo hacenPara IBM DB2, usaría lo siguiente:
Tenga en cuenta que en DB2, los nombres de las columnas estarán en mayúsculas a menos que se definan dentro de comillas dobles con algo distinto de mayúsculas. Luego, también debe proporcionar la carcasa exacta del nombre de la columna.
fuente
WHERE UPPER(colname) = 'COLUMN_NAME'
.La siguiente consulta debería darle lo que está buscando:
Si está buscando columnas con un nombre exacto, simplemente reemplace la
WHERE
cláusula con:fuente
en Teradata 15:
fuente
Oracle sql / plsql:
fuente
Pase el nombre de la columna a esta variable:
$COLUMN_NAME
fuente
// Seleccione la tabla Particular:
fuente
Para SQL Server:
fuente