刚才有人问到了能不能把前5列相同的合并到一行
我想到了oracle的函数:wm_concat
开搞开搞,说一下该函数的用法。
首先准备一下测试数据:
1.创建员工表
CREATE TABLE worker
(
fdepid INT,
fname VARCHAR (20),
Fcity VARCHAR (255)
);
---------------------------------
2.插入测试数据:
INSERT INTO worker VALUES (1, '张三', 'China');
INSERT INTO worker VALUES (2, '李四', 'China');
INSERT INTO worker VALUES (2, '赵四', 'China');
INSERT INTO worker VALUES (1, '王五', 'China');
INSERT INTO worker VALUES (1, '赵六', 'China');
----------------------------------
3.建表后,表中结果如下:
============================================
按部门统计,每个部门下的人(中间用‘,’隔开),每个部门显示一行。
查询后效果如下:
============================================
使用函数wm_concat写法:
SELECT fdepid, wm_concat (fname) people
FROM worker
GROUP BY fdepid;
结果如下:
等等搞错了,
由于wm_concat 函数组合字段后是(HUGECLOB)类型,所以需要再用TO_CHAR函数转换一下。
SELECT fdepid, TO_CHAR (wm_concat (fname)) people
FROM worker
GROUP BY fdepid;
这下对了
-----------------------------------------------------------------------
怎么样是不是搜易贼?例子仅做简单展示功能,复杂逻辑大家再尽情发挥。