해당하는 두 개 이상의 테이블에 대해 INFORMATION_SCHEMA.COLUMNS
을 검사하여 적절한 SELECT...UNION...SELECT
문을 합성 할 수 있습니다. 열이 준비되어 있으면 공통 열만 포함하도록 SQL을 작성할 수 있습니다.
사용하여 T-SQL :
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'FirstTable'
UNION
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'SecondTable'
논리를 설명하기 위해 예를 들어 C#을 사용 : 테이블이 다른 열이있는 경우
List<string> sharedColumnNames = CallTheAforementionedSql();
string unionStatement = string.Format(
"SELECT [{0}] FROM FirstTable UNION SELECT [{0}] FROM SecondTable",
string.Join("],[", shareColumnNames.ToArray())
);
var stuff = ExecuteSql(unionStatement);
당신은 열을 표시해야합니다. 다른 서버에있는 데이터베이스의 이름이 다를 수 있습니까? 그것은 당신이 쿼리 문제가 아닌 데이터베이스 디자인 문제가 있다는 것을 깨닫습니다. 열이 무엇인지 미리 아십니까? – HLGEM
에픽 실패! 나도 열을 지정하지 않고 GROUP BY를하고 싶다. – SQLMason
My Skyrim의 연금술 기술은 거의 100 레벨입니다. 아마도 도움을 줄 수 있습니다. – jrummell