2013-09-24 5 views
-1

둘 다 수백 개의 열을 가진 2 개의 SQL Server 테이블이 있습니다.두 개의 테이블을 열 이름순으로 정렬하십시오.

표 1의 샘플은 다음 표 2의

ID ColA ColC ColD ColF ... 

샘플은 다음과 같습니다

ID ColB ColE ... 

내가 열 ID에 가입하지만 열이 알파벳을 인쇄이 필요합니다. 지금은 알파벳순으로 열의 이름이 필요합니다. 각 열의 데이터는 아직 신경 쓰지 않습니다.

그래서 그것은해야한다 :

ID ColA ColB ColC ColD ColE ColF ... 
+1

그건 중요하지 않으며 당신의 전화가 아닙니다. – cdub

+0

-1 – cdub

답변

1
당신은 쿼리를 작성하는 데 도움이 사용할 수 있습니다

:

SELECT ',' + name 
FROM sys.columns 
WHERE object_id IN (OBJECT_ID('Table1'),OBJECT_ID('Table2')) 
ORDER BY name 

업데이트 : 동적 SQL 버전 (수동으로 테이블 이름을 풍덩해야) :

DECLARE @sql VARCHAR(MAX) 
     ,@cols VARCHAR(MAX) 
SET @cols = (SELECT STUFF((SELECT ',' + Name 
          FROM (SELECT DISTINCT Name 
            FROM sys.columns 
            WHERE object_id IN (OBJECT_ID('Table1'),OBJECT_ID('Table2')) 
            AND Name <> 'ID' 
           )sub 
          ORDER BY name 
          FOR XML PATH('')   
          ), 1, 1, '')) 
SET @sql = 'SELECT ' [email protected]+' 
      FROM Table1 a 
      JOIN Table2 b 
       ON a.ID = b.ID 
      ' 
EXEC (@sql)