簡體   English   中英

如何將數據從一個表遷移到另一個表中,表 1 中的行是表 2 中的列?

[英]How do I migrate data from one table into another, the rows in table1 being columns in table2?

我發現了幾個類似的問題,但似乎沒有一個能准確回答我的問題,而且我不太擅長 SQL,所以這是我的問題:

我有多行的table 1

姓名 價值
姓名1 v1
姓名2 v2
姓名3 v3
姓名 4 v4
姓名5 v5

我想將這些行(特定的行,如 name1、name2、name3)遷移到另一個表中的一行中,其中的列將與名稱匹配。

這是table 2

ID n1 n2 n3
1 v2 v2 v3

我可能知道如何編寫能夠做到這一點的 SQL,但只能逐行編寫。 遷移該數據的好方法是什么? 理想情況下,我也會在完成后刪除表 1 中的行。

我假設您想匯總您的結果並插入到一個空表中。 查詢中的名稱不必匹配。 相關的是括號之間列出的insert列中名稱之間的對應關系,其順序與select輸出相同。

insert into t2 (id, matchForN1, matchForN2, matchForN3, ...)
select
    id,
    min(name) filter (where name = 'name1') as n1,
    min(name) filter (where name = 'name2') as n2,
    min(name) filter (where name = 'name3') as n3 ...
from t1
where name in ('name1', 'name2', 'name3' ...)
group by id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM