先把正确的SQL放在这里,以便以后查看
select
group_concat(conv(oct(doId),8,10) separator ",") as doId1,
group_concat(conv(conv(doId,10,8),8,10) separator ',') as doId2
from delivery_order
group by acName,csName
在进行分组时,有时候需要将某一字段的值以逗号或其它符号拼接在一起,可以使用group_concat函数来完成,如果要拼的字段是字符型的,很好办,用group_concat(字段名 separator ",")就行.
今天在测试程序时,发现有问题,后来发现就是group_concat函数的问题,拼接的字段是主键ID,我设为自动增长,我使用group_concat(oct(doId) separator ",")发现拼接的主键不对劲,如果不使用oct()函数,对于要拼接的字段是数字型的这种情况,产生的结果就会是一个BLOB数据,因此要使用函数来处理一下,后来我查了查MYSQL手册,发现oct()函数是返回一个8进制的数,原因找到了就好解决了,于是就再找啊找啊,找到了conv()函数,再转换成10进制的数字就OK了,返回的结果正如我意,group_concat(conv(oct(doId),8,10) separator ",") 和
group_concat(conv(conv(doId,10,8),8,10) separator ',') 产生的效果是一样的
分享到:
相关推荐
- **`CONCAT_WS()`**:类似于 `GROUP_CONCAT`,但不支持聚合操作,用于连接字符串并使用指定的分隔符。 通过以上介绍,我们可以看到 `GROUP_CONCAT` 在处理分组数据时的强大能力,以及如何根据具体需求灵活运用其...
在配置文件中添加一行 `group_concat_max_len = 102400`,设定你期望的最大长度。这会永久改变MySQL服务器的默认设置。需要重启MySQL服务以使更改生效。 2. 动态设置会话变量: 如果你只是临时需要增加GROUP_...
例如,如果你原来的语句是`SELECT WM_CONCAT(column) FROM table`,你可以改为`SELECT LISTAGG(column, ', ') WITHIN GROUP (ORDER BY column) FROM table`。这样,LISTAGG会按照column的顺序将行连接成一个字符串,...
`group_concat_max_len`变量决定了`GROUP_CONCAT`函数返回的最大长度。你可以通过以下两种方式来修改这个限制: 1. **临时修改(仅限当前会话)**: ```sql SET SESSION group_concat_max_len = 102400; ``` 这...
标题中的"wm_concat函数所需资源包"是指解决`WM_CONCAT()`在新版本Oracle中无法使用的问题的相关资源集合。 描述中提到的链接指向了一篇CSDN博客文章,该文章提供了详细的解决方案。在这里,我们将深入探讨`WM_...
作用: GROUP_CONCAT函数可以拼接某个字段值成字符串,默认的分隔符是 逗号,即...SHOW VARIABLES LIKE 'group_concat_max_len' 操作方法:(如图) 调整长度设置方法: (1)在MySQL配置文件中加入: 文件:my.ini
但在使用GROUP_CONCAT()函数后,这个过程变得非常简单: ```sql SELECT student_id, GROUP_CONCAT(courses_id) AS courses FROM student_courses WHERE student_id=2 GROUP BY student_id; ``` 上述查询将返回一个...
- `GROUP_CONCAT`默认返回的字符串长度有限制,可以通过设置`group_concat_max_len`系统变量来调整这个限制。 - `GROUP_CONCAT`中的`SEPARATOR`关键字用于指定各个元素之间的分隔符,如果不指定,默认使用逗号 `,`。...
STATIC FUNCTION ODCIAGGTRANS(p acum WM_CONCAT_IMPL, p_val VARCHAR2) RETURN WM_CONCAT_IMPL, MEMBER FUNCTION ODCIFINALFUNC(pself IN OUT WM_CONCAT_IMPL) RETURN VARCHAR2 ); / CREATE OR REPLACE TYPE ...
需要注意的是,`GROUP_CONCAT`函数返回的字符串长度受到`group_concat_max_len`系统变量的限制。默认情况下,这个值是1024个字节,如果你需要处理更长的字符串,可以通过`SET`语句临时或全局地修改此变量的值: ```...
当尝试在Oracle 11gR2或更高版本中使用WMSYS.WM_CONCAT时,会出现ORA-00904错误,因为这个函数不再可用。这可能是由于以下几个原因: 1. **数据库版本升级**:从旧版本升级到11gR2或更高版本后,WM_CONCAT不再受支持...
2. GROUP_CONCAT 函数的结果集最大长度为 1024 字符,可以使用 `GROUP_CONCAT_MAX_LEN` 系统变量来调整结果集的最大长度。 3. GROUP_CONCAT 函数忽略空值,可以使用 `COALESCE` 函数来处理空值。 GROUP_CONCAT 函数...
在Oracle数据库中,WM_CONCAT是一个非常实用的聚合函数,用于将一组字符串连接成一个单一的字符串,类似于SQL Server中的STRING_AGG或MySQL中的GROUP_CONCAT。然而,Oracle官方并没有提供这个函数,它是一个第三方...
例如,假设我们有一个`Orders`表,包含`CustomerId`和`ProductName`字段,我们可以使用`SqlServer GroupConcat`来获取每个客户的所有订单产品名,组合成一个逗号分隔的字符串: ```sql SELECT CustomerId, [Group...
默认情况下,这个限制通常是1024个字符,可以通过修改`group_concat_max_len`系统变量来增大这个限制。 - 分隔符可以是任何字符串,例如空格、冒号或其他自定义的字符。例如,要使用分号作为分隔符,可以这样写:`...
在创建自定义`WM_CONCAT`函数时,通常会使用`XMLAGG`和`TO_CLOB`函数组合,以实现类似的功能,同时避免在12C及更高版本中遇到的问题。以下是一个简单的示例: ```sql CREATE OR REPLACE FUNCTION custom_wm_concat( ...
MySQL中的`GROUP_CONCAT()`函数是一个非常实用的聚合函数...不过,合理地使用`GROUP BY`子句和理解`group_concat_max_len`的限制对于正确运用这个函数至关重要。在设计查询时,务必考虑这些因素以确保得到期望的结果。