2017-08-10 50 views
0

我得到了我想要得到的表一樣,該表向所有其他行中的每行添加值。 SQL

ID 
1 
2 
3 
4 

ID Values 
1 234 
2 134 
3 124 
4 123 

什麼,我試圖做的是從所有其他行添加到每個行ID。

我試圖使用except或not exists方法,但它不起作用。

union_poly AS (
    SELECT b.id FROM poly b 
    EXCEPT (SELECT * FROM poly ct) 
    --WHERE NOT EXISTS(SELECT * FROM poly ct WHERE b.id <> ct.id) 

) 
+2

使用該表格數據,預期結果是什麼? (格式化文本也在這裏。) – jarlh

+0

是唯一密鑰的ID? –

+0

請注意,你會很快遇到一些非常長的數字。例如。如果你有100行,1.000行或50.000行。 – ssn

回答

1

你可以這樣做:

select id, 
     (select string_agg(t2.id::text, '' order by t2.id) 
     from t t2 
     where t2.id <> t.id 
     ) as ids 
from t; 

Here是Rextester。 And一個SQL小提琴(現在比較慢)。

相關問題