약 100 개의 테이블이있는 데이터베이스가 있고 그중 특정 데이터를 가져 오기 위해 조인 쿼리를 작성해야합니다. 나는 하나는 알지만 다른 것은 알지 못한다. 기본적으로 다음과 같은 것이 필요합니다.
select <tables> from <database> where exists table.column name;
어떻게해야합니까?
답변
사용 information_schema
이것이 표준 호환 크로스 RDBMS 방법입니다.
SELECT table_catalog, table_schema, table_name, column_name
FROM INFORMATION_SCHEMA.columns
WHERE column_name = '<your column name>';
이 문서를 볼 수 있습니다
답변
IBM DB2의 경우 다음을 사용합니다.
select tabschema,tabname from syscat.columns where colname = 'COLUMN_NAME'
DB2에서 열 이름은 대문자 이외의 다른 이름 으로 큰 따옴표 안에 정의 되지 않는 한 대문자로되어 있습니다. 그런 다음 열 이름 의 정확한 케이스도 제공해야합니다 .
답변
아래 쿼리는 원하는 것을 제공합니다.
use YourDatabase;
go
select
object_schema_name(t.object_id) + '.' + t.name as table_name,
c.name as column_name
from sys.tables t
inner join sys.columns c
on t.object_id = c.object_id
where c.name like '%ColumnSearchText%';
정확한 이름의 열을 찾으려면 WHERE
절을 다음과 같이 바꾸십시오 .
where c.name = 'ColumnSearchText';
답변
Teradata 15에서 :
SELECT DATABASENAME||'.'||TABLENAME AS FULL_TABLENAME,
COUNT(1) AS NUMBER_OF_COLUMNS
FROM DBC.COLUMNSV
WHERE 1 = 1
AND COLUMNNAME LIKE '%<YOUR COLUMNNAME HERE>%'
GROUP BY 1
답변
Oracle SQL / plsql :
select table_name from all_tab_columns where column_name='yourcolumnname';
답변
SELECT * FROM _v_sys_columns WHERE COLUMN_NAME='$COLUMN_NAME'
이 변수에 열 이름을 전달하십시오 : $COLUMN_NAME
답변
// 특정 테이블을 선택하십시오.
SYNTAX:
SELECT COLUMN_NAME FROM TABLE_NAME WHERE COLUMN_NAME='VALUE';
EXAMPLE:
SELECT PERSON_NAME FROM PERSON WHERE PERSON_ID=1;