Chinaunix

标题: 请教SQL 查询语句 (多行字段 变成一行显示结果) [打印本页]

作者: Tiere    时间: 2010-08-04 10:00
标题: 请教SQL 查询语句 (多行字段 变成一行显示结果)
假设 我有一张表,内容如下:

p_sn     mo_sn      kp_sn
11         888          K001
11         888          K002
11         888          K003
22         888          K011
22         888          K012
22         888          K013
33         888          KKK1
33         888          KKK2
66         888          22XX
66         888          23X2
.....



我怎么写查询语句,才能得到如下的查询结果?

11    888   K001    K002    K003
22    888   K011    K012    K013
33    888   KKK1    KKK2
66    888   22XX    23X2
....

需要用到什么函数?  或者大致的思路,各位能否提供一下给我啊~~~谢谢
作者: renxiao2003    时间: 2010-08-04 11:22
本帖最后由 renxiao2003 于 2010-08-04 11:25 编辑

先根据p_sn 这个分组,然后确定在p_sn 下的mo_sn是一样的(不会出现两个,或者出现两个两行显示)。然后的处理……

我用存储过程写过行列变换的,你这个属于部分变换。但用SQL语句,难度大,没试过 。
作者: Tiere    时间: 2010-08-04 15:39


头疼~~~  折腾一天了
作者: Tiere    时间: 2010-08-04 19:52
我实现了这个效果:

select p_sn,mo_sn,wmsys.wm_concat(kp_sn)
from 表
where mo_number='1601022' group by serial_number;

结果:
p_sn   mo_sn         kp_sn
11       888         K001,K002,K003
22       888         K011,K012,K013
33       888         KKK1,KKK2
66       888         22XX,23X2




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2