Saya punya database dengan sekitar 100 tabel dan saya perlu membuat permintaan bergabung untuk mendapatkan data spesifik dari dua tabel tersebut. Saya tahu satu tetapi tidak yang lain. Pada dasarnya saya butuh sesuatu seperti:
select <tables> from <database> where exists table.column name;
Bagaimana saya bisa melakukan ini?
Jawaban:
Menggunakan
information_schema
Ini adalah cara RDBMS lintas standar untuk melakukannya.
Anda dapat melihat ini didokumentasikan
sumber
INFORMATION_SCHEMA
, oleh @AaronBertrand milik kami sendiri ( sqlblog.com/blogs/aaron_bertrand/archive/2011/11/03/… )information_schema.columns
sejak tahun 2006. Satu dekade penuh sebelum bahkan mengimplementasikannya. Jika Microsoft SQL tidak mendukung standar, mungkin kita harus melihat mengomel mereka. Yang lainnya melakukannya.Untuk IBM DB2 Anda akan menggunakan yang berikut:
Perhatikan bahwa dalam DB2, nama kolom akan dalam huruf besar kecuali jika mereka didefinisikan di dalam tanda kutip ganda dengan sesuatu selain huruf besar Maka Anda harus menyediakan casing yang tepat dari nama kolom juga.
sumber
WHERE UPPER(colname) = 'COLUMN_NAME'
.Kueri di bawah ini akan memberi Anda apa yang Anda cari:
Jika Anda mencari kolom dengan nama yang tepat, ganti saja
WHERE
klausa dengan:sumber
dalam Teradata 15:
sumber
Oracle sql / plsql:
sumber
Silakan berikan nama kolom ke variabel ini:
$COLUMN_NAME
sumber
// Pilih tabel tertentu:
sumber
Untuk SQL Server:
sumber