SQL语句写法

想实现如下功能:
如表AA记录为
id sid
18 180
18 190
18 200
19 283
我想通过sql查出结果为 180,190,200
即select * from AA where id = 18 后的结果排成一行,以逗号分割
请问能否实现,如果可以,SQL的写法为?
也即查出的数据作为一个字段返回,因为我使用的框架包装比较多,在程序中处理比较困难。

第1个回答  2008-10-13
如果你这表就这两个字段,那应该是动态,动态的比较麻烦要用到存储过程。

如果每个id都固定有几个sid那就是静态,一个sql语句就可以出来。

另:数据库不同,写的语句不同。
第2个回答  2008-10-13
SELECT SID || ',' AS NEW_ID
FROM AA
WHERE ID = 18

这样可以达到输出的效果有逗号,通过程序一个个读出来就好了。弊端就是要想办法把最后一个数据的逗号给去掉。

参考下吧
第3个回答  2008-10-13
SELECT country,max(substr(city,2)) city
FROM
(SELECT id,sys_connect_by_path(city,',') id
FROM
(SELECT id,sid,id||rn rchild,id||(rn-1) rfather
FROM
(SELECT aa.id,aa.sid,row_number() over (PARTITION BY aa.id ORDER BY
aa.sid) rn
FROM aa))
CONNECT BY PRIOR rchild=rfather START WITH rfather LIKE '%0')
GROUP BY id;
第4个回答  2008-10-13
如果你是使用程序读取这样的记录的话,你就可以把记录先全读出来再拼装!

如果你是直接在sql中使用的话那就需要使用存储过程了
相似回答