在不確定每筆ftid對應多少content筆數的情況下
個人經驗是, 在oracle92是做不到的
如果能確定對應多少個content, 或是預估多少個content
且在每個ftid之下的content編上序號:cont_seq
table b :
faid | ftid | ftname | content | cont_seq
-------|----------|----------|-----------+---------
0 | 0 | name1 | content1 | 1
1 | 0 | name1 | content2 | 2
2 | 1 | name2 | content3 | 1
3 | 1 | name2 | content4 | 2
4 | 1 | name2 | content5 | 3
5 | 2 | name3 | content6 | 1
將每筆cont_seq decode成橫向欄位(or ||)
或許就可以做到, 但非常不完美.
至於要如何編上cont_seq, 可能要請達人來解惑
SELECT ftid, ftname, MAX (DECODE (cont_seq, 1, content)) cont1,
MAX (DECODE (cont_seq, 2, content)) cont2,
MAX (DECODE (cont_seq, 3, content)) cont3
FROM TEST
GROUP BY ftid, ftname;
--
FTID FTNAME CONT1 CONT2 CONT3
0 NAME1 CONTENT1 CONTENT2
1 NAME2 CONTENT3 CONTENT4 CONTENT5
2 NAME3 CONTENT6
※ 引述《BlowMe (我是一只嗩吶)》之銘言:
: 我遇到一種情況,
: 有兩個table,
: table a:
: ftid | ftname
: -------|---------
: 0 | name1
: 1 | name2
: 2 | name3
: table b :
: faid | ftid | ftname | content
: -------|----------|----------|-----------
: 0 | 0 | name1 | content1
: 1 | 0 | name1 | content2
: 2 | 1 | name2 | content3
: 3 | 1 | name2 | content4
: 4 | 1 | name2 | content5
: 5 | 2 | name3 | content6
: 類似這樣,
: 其中table a的ftid跟table b的faid都是主鍵值與自動累加1,
: 而table b的ftid與ftname是從table a來的,
: 假如我想要從table b中,找出相同的ftid與ftname,
: 把它們的content加在一起,像table c:
: ftid | ftname | content
: -------|----------|---------------------------
: 0 | name1 | content1content2
: 1 | name2 | content3content4content5
: 2 | name3 | content6
: 請問這有辦法下SQL做到嗎?
: 先說聲感謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.243.151.204
※ 編輯: gargamel 來自: 210.243.151.204 (11/15 12:36)