2016-07-01 109 views
0

我有一張表,其中包含不同數據集的列名。例如。如何讓兩個表彼此相處?

ID|Col1 |Col2 |Col3| 
------------------------ 
23|Name |City |Age | 
24|Answer1|Answer2|Name| 

我有另一張表,其中包含上表中每個列的數據。

ID|Col1 |Col2 |Col3| 
------------------------ 
23|Marc |Paris |45 | 
23|Frank |Berlin |14 | 
23|Ole |Oslo |65 | 
24|Yes |Yes |Alex| 
24|No  |Yes |Thea| 

我正在尋找一種方式來獲得與where = ID表與第一列保存的列名和屬於該列然後將數據。例如。

ID|Col1 |Col2 |Col3| 
------------------------ 
23|Name |City |Age | 
23|Marc |Paris |45 | 
23|Frank |Berlin |14 | 
23|Ole |Oslo |65 | 

我已經嘗試過不同的連接,但我得到的是一列中的所有數據不在彼此之間。有人可以幫我嗎?

我與SQL Server工作,所以使用TSQL方言,但我想答案還沒有具體到TSQL所以我增加了SQL標誌爲好。

+0

乍一看,在我看來,該表保存數據應分成兩個表,一個保存名稱,城市和年齡屬性,另一個表中包含答案和姓名屬性。這樣,你可以例如理解這樣一個事實,即年齡應該是一個數字,名字應該是一個字符串。 –

+0

我的確需要在更進一步的工作中做到這一點,但是我有表1中的39列和表2中的1,200,000列,所以在解決您在SSIS中提到的問題之前,正在尋找一種方法來查看數據。 – ruedi

回答

0
SELECT Col1, Col2, Col3, 1 as [sort] 
from table1 
where id = 23 
union all 
SELECT Col1, Col2, Col3, 2 
from table2 
where id = 23 
order by sort 
0

ID = 23下面的SQL給你預期的結果:

SELECT Col1, Col2, Col3 
FROM COLUMN_NAMES 
WHERE ID = 23 
UNION 
SELECT Col1, Col2, Col3 
FROM DATA 
WHERE ID = 23