如果在SQL语句中查出数据是三列,在一二列相同的情况下第三列的数据就全部显示在第三列?

比如:ABC12我的12你的则显示结果为ABC12我的;你的... 比如:
A B C
1 2 我的
1 2 你的
则显示结果为
A B C
1 2 我的;你的
展开
 我来答
匿名用户
推荐于2016-04-26
展开全部
CREATE TABLE TestTitle (
  name   VARCHAR(10),
  title  VARCHAR(20)
);

INSERT INTO TestTitle VALUES ('张三', '程序员');
INSERT INTO TestTitle VALUES ('张三', '系统管理员');
INSERT INTO TestTitle VALUES ('张三', '网络管理员');

INSERT INTO TestTitle VALUES ('李四', '项目经理');
INSERT INTO TestTitle VALUES ('李四', '系统分析员');

 

 

Oracle  数据库的话

SELECT
  2    name,
  3    WMSYS.WM_CONCAT(title) AS allTitle
  4  FROM
  5    TestTitle
  6  GROUP BY
  7    name;
NAME
ALLTITLE
李四
项目经理,系统分析员
张三
程序员,系统管理员,网络管理员

SQL Server 的话

SELECT
  name,
  STUFF(
    (
    SELECT
      ',' + title
    FROM
      TestTitle subTitle
    WHERE
      name = TestTitle.name
    FOR XML PATH('')
    ),
    1, 1, '') AS allTitle
FROM
  TestTitle
GROUP BY
  name
name       allTitle
---------- --------------------------------
李四         项目经理,系统分析员
张三         程序员,系统管理员,网络管理员

 

 

 

MySQL 的话

mysql> SELECT
    ->   name,
    ->   GROUP_CONCAT(title) AS allTitle
    -> FROM
    ->   TestTitle
    -> GROUP BY
    ->   name;
+------+------------------------------+
| name | allTitle                     |
+------+------------------------------+
| 李四 | 项目经理,系统分析员          |
| 张三 | 程序员,系统管理员,网络管理员 |
+------+------------------------------+
2 rows in set (0.00 sec)

 

PostgreSQL 的话

SELECT
  name,
  array_to_string(ARRAY(SELECT unnest(array_agg(title))),',') AS allTitle
FROM
  TestTitle
GROUP BY
  name;
 name |           alltitle
------+------------------------------
 李四 | 项目经理,系统分析员
 张三 | 程序员,系统管理员,网络管理员
(2 行记录)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式