Oracle PL / SQL。按分组数据分组

时间:2016-03-22 11:11:55

标签: oracle plsql

我是Oracle PL / SQL的新手。我有关于“创建视图,基于clob分组”的问题。

TABLE1 =员工

EMP_ID   : NUMBER
EMP_NAME : VARCHAR2(255 BYTE)
AGE      : NUMBER

TABLE2 = EMPLOYEE_WORK

EMP_ID   : NUMBER
DEPT_NO  : NUMBER
WORK_DONE: CLOB

示例查看查询:

CREATE OR REPLACE view EMP_DETAILS 
as 
select E.EMP_ID, 
       E.EMP_NAME, 
       W.DEPT_NO, 
       W.WORKDONE 
from EMPLOYEE E, 
     EMPLOYEE_WORK W 
where E.EMP_ID=W.EMP_ID 
group by E.EMP_ID, E.EMP_NAME, W.DEPT_NO, W.WORKDONE;

我想仅根据DEPT_NO执行分组。因为oracle不支持。我必须在GROUP BY下的VIEW中提供所有列。我不想显式地将clob转换为VARCHAR并按操作执行分组,因为我不知道clob的大小是多少,并且没有理由将它存在于GROUP BY列表中。

有没有办法执行此操作?提前致谢。

1 个答案:

答案 0 :(得分:-1)

回应sagi和Avraji所问的问题,“你想做什么?”并且,扩展了Boneist所说的内容,你的观点本质上是截然不同的。

通常,对于group by,您正在进行聚合,例如计数。网络搜索“Oracle group by。”

即使你不一定知道CLOB的长度,你可能只会按有限数量的字符排序。 Web搜索DBMS_LOB用于dbms_lob.substr等函数,例如dbms_lob.substr(w.WORK_DONE,100,1),可以满足您的需求。