GROUP_CONCAT用法

GROUP_CONCAT 是用于将分组后的多个行连接为一个字符串的聚合函数。它可以在 SELECT 查询中使用,并结合 GROUP BY 子句来实现对分组数据的字符串拼接操作。

GROUP_CONCAT 的一般语法如下:

GROUP_CONCAT([DISTINCT] expression [ORDER BY clause] [SEPARATOR separator])

其中:

  • DISTINCT:可选项,表示去除重复的值。
  • expression:表示要连接的表达式或列名。
  • ORDER BY clause:可选项,用于指定连接结果的排序顺序。
  • SEPARATOR separator:可选项,用于指定连接结果中的分隔符,默认为逗号(,)。

示例:

假设有一个 Students 表包含学生的姓名和所属班级信息:

+----+-------+---------+
| ID | Name  | Class   |
+----+-------+---------+
| 1  | John  | A       |
| 2  | Alice | B       |
| 3  | Bob   | A       |
| 4  | Mary  | B       |
+----+-------+---------+

可以使用 GROUP_CONCAT 来将同一班级的学生姓名连接为一个字符串,以班级作为分组依据:

SELECT Class, GROUP_CONCAT(Name) AS Students
FROM Students
GROUP BY Class;

执行以上查询后,会得到如下结果:

+-------+------------------+
| Class | Students         |
+-------+------------------+
| A     | John,Bob         |
| B     | Alice,Mary       |
+-------+------------------+

注意:默认情况下,GROUP_CONCAT 函数会将连接后的字符串按照系统变量 group_concat_max_len 的值进行截断,如果需要更大的连接长度,可以在查询之前设置该变量的值,例如:SET group_concat_max_len = 1000000;

  1. A中SQL语句查询不出列值为NULL的字段,此时需对字段为NULL的情况另外处理

  2. null与任何字段相比都会返回false,为此,oracle提供了一个is null词组判断null。空字符串不是null

  3. 查询null的值:select * from student_table where name is null ;

  4. 查询非null的值,就需要使用is not null词组判断

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值