如何用sql把类似这样子的数据
City People Make
广州   1        A
广州   2        B
广州   3        C
上海   4        A
上海   5        E查出
City        Make
广州        A,B,C
上海        A,E
这样子的结果来!
大侠们,这样子能够实现吗??

解决方案 »

  1.   


    SELECT City,wm_concat(Make) FROM TABLE;
      

  2.   


    如果是在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)结果是这样子的哦!
      

  3.   

    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.ci
    ty;
    +----------+---------------------------+
    | city     | group_concat(city.``) |
    +----------+---------------------------+
    | guanzhou | a,b                       |
    | shanhai  | a,b,c                     |
    +----------+---------------------------+
    2 rows in set (0.00 sec)
    哈哈 小弟加多一个group by 进去可以实现了!不过还是不懂这个方法的用处。
    大哥,有没有什么资料给小弟,让小弟也学习一下这么高级的sql吧!
      

  4.   

    哈哈  明天我回公司的oracle试一下!!明天结贴 !!谢谢大哥!!!
    有啥资料请把资料信息发给我啊!![email protected]
      

  5.   

    group by 是用于分组。。
    wm_concat()函数还真没用过。。顶一下!
    查了下,是用于把列值用符号分隔,并拼成一行来显示。谢谢分享知识
      

  6.   

    wm_concat为啥我在oracle上有几个库里能用,有几个用不了说未定义
      

  7.   

    实测数据: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');
    实测结果: