我无法在包含CASE ... WHEN的查询中解决GROUP BY问题。>
您能帮我吗?
select ID, CODE, NOM AS TITLE, level, ID_PARENT, CASE ID_PARENT WHEN 1111 THEN 'MAIN' ELSE ( SUBSTR( ( SELECT CODE FROM units o INNER JOIN LIB_UNITS_MV oLab on oLab.ID = o.ID WHERE o.ID = units.ID_PARENT AND LNG_CD = 'ENG' ) , 7) ) END AS "PARENT_CODE" from units INNER JOIN LIB_UNITS_MV orgLab on orgLab.ID = units.ID WHERE orgLab.LNG ='ENG' start with units.id = 1111 connect by prior u.ID = u.ID_PARENT GROUP BY ID, CODE, NOM, level, ID_PARENT
由于出现了WHEN ... CASE,因此出现错误“不是GROUP BY表达式”>
谢谢您的帮助
问候
我无法解决包含CASE的查询中的GROUP BY问题...何时可以帮助我解决此问题?选择ID,CODE,NOM AS TITLE,级别,...
因为group by
时,您需要对select
语句中使用的足够数量的列进行分组,并使用外部聚合函数(min
,max
,sum
等)。因此,在您的情况下,这意味着-您可以按case
语句中使用的所有列进行分组,也可以按整个case
语句进行分组(只需将其复制到group by
中)或任何子组合集case
的全部,完全覆盖了它。但是-因为您没有使用任何聚合函数,所以我只需要执行distinct
并完全删除group by
。