weixin_49716251 2023-06-21 10:37 采纳率: 42.9%
浏览 32
已结题

oracle 语句设计

字段拼接

名称类别1类别2类别3
小米语文数学
小红数学
小蓝语文英语
小黄英语
小月

想要实现这样的拼接效果
小米 :语文、数学
小红:数学
小蓝:语文、英语
小黄:英语
小月:

拼接有记录的字段 ,sql 怎么写啊,oracle11g

  • 写回答

3条回答 默认 最新

  • 梦幻编织者 2023-06-21 10:50
    关注

    SELECT 名称, CONCAT_WS('、',
    IF(类别1 IS NOT NULL, '语文', NULL),
    IF(类别2 IS NOT NULL, '数学', NULL),
    IF(类别3 IS NOT NULL, '英语', NULL)) AS categories
    FROM students

    SELECT 名称:选择姓名字段;
    CONCAT_WS('、', ...):使用“、”作为分隔符,拼接以下的字段内容;
    IF(categoryX IS NOT NULL, '分类名称', NULL):如果该记录的categoryX字段不为空,则返回分类名称,否则返回NULL;
    categories:指定拼接后的字段别名。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月28日
  • 修改了问题 6月21日
  • 创建了问题 6月21日