大侠们,帮小弟写一个sql语句。小弟再此感激不尽啊 如何用sql把类似这样子的数据City People Make广州 1 A广州 2 B广州 3 C上海 4 A上海 5 E查出City Make广州 A,B,C上海 A,E这样子的结果来!大侠们,这样子能够实现吗?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SELECT City,wm_concat(Make) FROM TABLE; 如果是在mysql上呢?类似的方法是不是group_concatmysql> select * from city;+----+----------+------+| id | city | |+----+----------+------+| 1 | guanzhou | a || 2 | guanzhou | b || 3 | shanhai | a || 4 | shanhai | b |+----+----------+------+mysql> select city.`city`,group_concat(city.``) from `city`;+----------+---------------------------+| city | group_concat(city.``) |+----------+---------------------------+| guanzhou | a,b,a,b |+----------+---------------------------+1 row in set (0.00 sec)结果是这样子的哦! mysql> select * from city;+----+----------+------+| id | city | |+----+----------+------+| 1 | guanzhou | a || 2 | guanzhou | b || 3 | shanhai | a || 4 | shanhai | b || 5 | shanhai | c |+----+----------+------+5 rows in set (0.00 sec)mysql> select city.`city`,group_concat(city.``) from `city` group by city.city;+----------+---------------------------+| city | group_concat(city.``) |+----------+---------------------------+| guanzhou | a,b || shanhai | a,b,c |+----------+---------------------------+2 rows in set (0.00 sec)哈哈 小弟加多一个group by 进去可以实现了!不过还是不懂这个方法的用处。大哥,有没有什么资料给小弟,让小弟也学习一下这么高级的sql吧! 哈哈 明天我回公司的oracle试一下!!明天结贴 !!谢谢大哥!!!有啥资料请把资料信息发给我啊!![email protected] group by 是用于分组。。wm_concat()函数还真没用过。。顶一下!查了下,是用于把列值用符号分隔,并拼成一行来显示。谢谢分享知识 wm_concat为啥我在oracle上有几个库里能用,有几个用不了说未定义 实测数据:CREATE TABLE T112( City VARCHAR2(20), People VARCHAR2(20), MAKE VARCHAR2(20));INSERT INTO T112 VALUES('广州', '1', 'A');INSERT INTO T112 VALUES('广州', '2', 'B');INSERT INTO T112 VALUES('广州', '3', 'C');INSERT INTO T112 VALUES('上海', '4', 'A');INSERT INTO T112 VALUES('上海', '5', 'B');实测结果: oracle存储过程里,如何复制表结构 追加新列 oracle导入导出时,停不停止服务有影响吗? 在安装oracle数据库时 data_warehouse错误 oracle 的错误 请问Oracle中日期型数据如何从控制台输入 不知Oracle sql语法中有没有提供类似于sum(数值型字段)对字符型字段操作的函数呢?... oracle9 下的TNSLSNR.EXE进程问题 用rman 备份工具备份需要的磁盘空间 Oracle可中如何插入多行记录 请问我怎么创建一个表通过sqlplus, oracle触发器问题... 急急急 Oracle中怎么导出数据到文件比较快
SELECT City,wm_concat(Make) FROM TABLE;
如果是在mysql上呢?类似的方法是不是group_concat
mysql> select * from city;
+----+----------+------+
| id | city | |
+----+----------+------+
| 1 | guanzhou | a |
| 2 | guanzhou | b |
| 3 | shanhai | a |
| 4 | shanhai | b |
+----+----------+------+mysql> select city.`city`,group_concat(city.``) from `city`;
+----------+---------------------------+
| city | group_concat(city.``) |
+----------+---------------------------+
| guanzhou | a,b,a,b |
+----------+---------------------------+
1 row in set (0.00 sec)结果是这样子的哦!
+----+----------+------+
| id | city | |
+----+----------+------+
| 1 | guanzhou | a |
| 2 | guanzhou | b |
| 3 | shanhai | a |
| 4 | shanhai | b |
| 5 | shanhai | c |
+----+----------+------+
5 rows in set (0.00 sec)mysql> select city.`city`,group_concat(city.``) from `city` group by city.ci
ty;
+----------+---------------------------+
| city | group_concat(city.``) |
+----------+---------------------------+
| guanzhou | a,b |
| shanhai | a,b,c |
+----------+---------------------------+
2 rows in set (0.00 sec)
哈哈 小弟加多一个group by 进去可以实现了!不过还是不懂这个方法的用处。
大哥,有没有什么资料给小弟,让小弟也学习一下这么高级的sql吧!
有啥资料请把资料信息发给我啊!![email protected]
wm_concat()函数还真没用过。。顶一下!
查了下,是用于把列值用符号分隔,并拼成一行来显示。谢谢分享知识
(
City VARCHAR2(20),
People VARCHAR2(20),
MAKE VARCHAR2(20)
);INSERT INTO T112 VALUES('广州', '1', 'A');
INSERT INTO T112 VALUES('广州', '2', 'B');
INSERT INTO T112 VALUES('广州', '3', 'C');
INSERT INTO T112 VALUES('上海', '4', 'A');
INSERT INTO T112 VALUES('上海', '5', 'B');
实测结果: