PARTITION BY上的最大值不会返回dbms_lob.substr

时间:2016-03-23 09:48:15

标签: sql oracle max window-functions

select EVENT_TYPE, dbms_lob.substr( REPLACE(PK_DATA,'"','')) pk
, max(DATA_ID) over 
(PARTITION BY dbms_lob.substr( REPLACE(PK_DATA,'"',''), 100, 1 )) max_data_id
   from(
    select 'U' AS EVENT_TYPE,to_clob(x.ID) AS PK_DATA ,100000 AS DATA_ID 
    from SOME_TABLE where  SOME_CONDITION
UNION ALL
.
.
.
SOME OTHER TABLES
                  );

我有这个查询,它会永远运行而且无法完成。

如果我删除dbms_lob.substr( REPLACE(PK_DATA,'"',''), 100, 1 )to_clob(x.ID)并分别将其替换为PK_DATAx.ID,那就没问题

我想知道为什么会这样做,因为如果我删除它并解决其他联合表(肯定具有相同的结构),它会返回。

0 个答案:

没有答案