作者gargamel (Nerding)
看板Database
标题Re: [SQL ] 一个怪问题
时间Thu Nov 15 11:56:54 2007
在不确定每笔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)