为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: DM8 20220804
【操作系统】:
【CPU】:
【问题描述】*:
数据库模式为MySQL兼容模式
查询时报异常:-2685: 第19 行附近出现错误:试图在blob或者clob列上排序或比较
按照文档改成
又变成不是Group By的异常了
试了第二种方案
这里报不是group by语句是因为原有SQL语法不对,举个栗子:
正确语法:
select a,b,c,count(1) from table group by a,b,c;
错误语法:
select a,b,c,count(1) from table group by a;
看出区别了嘛,SQL92标准语法要求如果使用group by分组的话,你的select域除了分组列、集函数之外不能有其他项。
这里的话还是建议你改一下SQL
试试这种写法
SELECT
/*+ ENABLE_BLOB_CMP_FlAG(1) GROUP_OPT_FLAG(1)*/
CONCAT(IFNULL(o.province_name, ''),
IFNULL(o.city_name,''),IFNULL(o. area_name, ''),
IFNULL(o.street_name, '')) address,
d.is_school
o.*,
d.*,
---------------------------------------------------
-- 改写内容
LISTAGG(soa.supervise_id) as superviseId,
LISTAGG(soa.supervise_name) as superviseName,
so.NAME As parentName
sd.key_value As operatScaleName
---------------------------------------------------
o.open,
o.check_type
FROM
sys_organization o
LEFT JOIN sys_organization_detail d ON o.id=d.organization_ id
left join sys_organization_enterprise_nature en on en. organization_id = o.id and en.status =1
------------------------------------------------------------------------------------------
-- 改写内容
left join sys_organization_ascription soa on soa.STATUS = 1 and soa.organization_id = o.id
left join sys_organization so on so.id = o.parent_id
left join sys_data_item sd on sd.id = d.operat_scale
------------------------------------------------------------------------------------------
WHERE 1 = 1
AND en.enterprise_nature in (0)
group by o. id;
对大字段类型列进行排序、分组等操作时,会报错-2685:试图在blob或者clob列上排序或比较。
可以参考这篇博客:
https://blog.csdn.net/Mrkill123/article/details/127478828