sql查询一个字段多列值合并为一列sql 多列合并成一列查询多列合并一列,group by合并一列查询,多列数据

女爷i 2023-01-06 11:44 264阅读 0赞

1、针对1对多,查询合并多列的情况场景解决方案:

  1. SELECT
  2. t.news_id,
  3. t.sentiment_label AS '情感', (
  4. CASE WHEN t.sentiment_label=1
  5. then '负面'
  6. WHEN t.sentiment_label=2
  7. then '中性'
  8. ELSE '正面'
  9. END
  10. ) as '情感描述'
  11. FROM
  12. tbm_popular_feelings t
  13. WHERE
  14. t.sentiment_label IS NOT NULL
  15. AND t.create_time BETWEEN '2021-01-10 09:55:00'
  16. AND '2021-01-14 09:55:00'
  17. ORDER BY t.id desc;

运行结果:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE0ODgwMDk_size_16_color_FFFFFF_t_70

2、合并结果,多列为一列:

运行的SQL语句:

关键字:

GROUP_CONCAT(t.sentiment_label) AS ‘情感’

  1. SELECT
  2. t.news_id,
  3. GROUP_CONCAT(t.sentiment_label) AS '情感'
  4. FROM
  5. tbm_popular_feelings t
  6. WHERE
  7. t.sentiment_label IS NOT NULL
  8. AND t.create_time BETWEEN '2021-01-10 09:55:00'
  9. AND '2021-01-14 09:55:00'
  10. GROUP BY
  11. t.news_id;

运行结果:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE0ODgwMDk_size_16_color_FFFFFF_t_70 1

3、进行编码枚举描述说明,进一步优化SQL显示结果更为友好:

  1. SELECT
  2. t.news_id,
  3. GROUP_CONCAT(t.sentiment_label) AS '情感',
  4. GROUP_CONCAT(
  5. CASE
  6. WHEN t.sentiment_label = 1 THEN
  7. '负面'
  8. WHEN t.sentiment_label = 2 THEN
  9. '中性'
  10. ELSE
  11. '正面'
  12. END
  13. ) AS '情感描述'
  14. FROM
  15. tbm_popular_feelings t
  16. WHERE
  17. t.sentiment_label IS NOT NULL
  18. AND t.create_time BETWEEN '2021-01-10 09:55:00'
  19. AND '2021-01-14 09:55:00'
  20. GROUP BY
  21. t.news_id;

运行结果如下:

看起来更为友好!

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE0ODgwMDk_size_16_color_FFFFFF_t_70 2

发表评论

表情:
评论列表 (有 0 条评论,264人围观)

还没有评论,来说两句吧...

相关阅读

    相关 SQL合并

    一、拼接多列数据的基本概念 在SQL中,拼接多个列数据成为一列数据是很常见的问题。要将多列合并成一列,在SQL语言中需要使用concat函数。concat函数可以将多个字