当oracle clob类型不能和groupby并用,但是需要去除多列重复,请不要急!

直接看SQL:

SELECT T.MEMBER,

T.HTEST,

T.ACCEPTDATE,

T.TASKMEMO,

T.ACCEPTER,

T.TASKID,

T.ACCEPTRESULT,

T.OVERHAULRESULT,

T.OVERHAULCONTENT,

T.EQUIPMENTID ,

T.TASKLEVEL,

T.LEADER,

T.TASKNAME,

T.BEGINDATE,

T.ENDDATE,

T.PIOCONTENT,

V.GUOLUNAME,V.FENLEINAME

FROM V_GL_6JI V,T_OVERHUALTASK_TASK T

WHERE T.EQUIPMENTID=V.FENLEIID AND T.TASKID = 10000039104 GROUP BY T.MEMBER,T.HTEST,

T.ACCEPTDATE,

T.TASKMEMO, T.ACCEPTER,

T.TASKID, T.ACCEPTRESULT,

T.OVERHAULRESULT, T.OVERHAULCONTENT,

T.EQUIPMENTID , T.TASKLEVEL,

T.LEADER, T.TASKNAME, T.BEGINDATE, T.ENDDATE,

T.PIOCONTENT,

V.GUOLUNAME,V.FENLEINAME

但是会报如下错

ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB

00932. 00000 -  "inconsistent datatypes: expected %s got%s"

*Cause:

*Action:

行 19 列 89 出错

解决办法,不用group by

Sql如下:

SELECT T.MEMBER,

T.HTEST,

T.ACCEPTDATE,

T.TASKMEMO,

T.ACCEPTER,

T.TASKID,

T.ACCEPTRESULT,

T.OVERHAULRESULT,

T.OVERHAULCONTENT,

T.EQUIPMENTID ,

T.TASKLEVEL,

T.LEADER,

T.TASKNAME,

T.BEGINDATE,

T.ENDDATE,

T.PIOCONTENT,

(select v.FENLEINAME fromV_GL_6JI v where v.FENLEIID= T.EQUIPMENTID group by v.FENLEINAME) asFENLEINAME,

(select v.GUOLUNAME fromV_GL_6JI v where v.FENLEIID= T.EQUIPMENTID group by v.GUOLUNAME) as GUOLUNAME

FROM T_OVERHUALTASK_TASK T

WHERE T.TASKID = 10000039104

办法虽然有点笨,但是可以解决问题

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐