2014-10-30 24 views
0

我有一個包含約20列和數千行的表(SAMPLE)。我有另一個表格(SAMPLE_DETAIL),有2列(DETAIL_NAME,DETAIL_VALUE)。我想要做的就是將SAMPLE中的所有列插入SAMPLE_DETAIL,因爲它們都是自己的行,使用列名作爲SAMPLE_DETAIL.DETAIL_NAME,它的值爲SAMPLE_DETAIL.DETAIL_VALUE。將每個列從一個表插入到另一個表中的自己的行

樣品臺

ID, TEXT_ID, DESCRIPTION, LOG_DATE, LOG_BY 
1, SAMPLE_01, AA, 07-02-14, SW 
2, SAMPLE_02, AB, 07-02-14, RC 
3, SAMPLE_03, AC, 07-02-14, MH 
4, SAMPLE_04, AD, 07-02-14, RS 

TO

SAMPLE_DETAIL表

DETAIL_NAME, DETAIL_VALUE 
ID, 1 
TEXT_ID, SAMPLE_01 
DESCRIPTION, AA 
LOG_DATE, 07-02-14 
LOG_BY, SW 

ID, 2 
TEXT_ID, SAMPLE_02 
DESCRIPTION, AB 
LOG_DATE, 07-02-14 
LOG_BY, RC 

ID, 2 
TEXT_ID, SAMPLE_03 
DESCRIPTION, AC 
LOG_DATE, 07-02-14 
LOG_BY, MH 

ID, 3 
TEXT_ID, SAMPLE_04 
DESCRIPTION, AD 
LOG_DATE, 07-02-14 
LOG_BY, RS 

我希望我的例子可以解釋我的問題。

謝謝!

回答

0

最簡單的方法是用union all

insert into sample_detail(detail_name, detail_value) 
    select 'id', id from sample union all 
    select 'text_id', text_id from sample union all 
    select 'description', description from sample union all 
    select 'log_date', log_date from sample union all 
    select 'log_by', log_by from sample; 

因爲一切都被存儲爲字符串,你可能想的日期(使用convert()說)具體轉換,但這個想法是一樣的。

+0

謝謝!那是我比較容易的方式。 – 2014-10-30 03:10:13

相關問題