在交互式网格报表中使用超链接案例条件对列进行排序

Sorting column with hyperlink case condition in an Interactive Grid report

我的交互式网格报告中有以下超链接案例语句:

SELECT COL1, COL2,
...
   CASE IS_ACTIVE 
     WHEN 'Y' THEN  '<a href="' || APEX_PAGE.GET_URL(p_page => 22) || '">'||MY_LINK_ID||'</a>' 
     ELSE MY_LINK_ID
   END MODAL_LINK    
FROM TABLE_A

问题是,在添加此 case 语句之前,我的交互式网格报告列已按升序很好地排序,即:

100-1 (is_active = 'N')  
100-2 (is_active = 'Y')  
100-3 (is_active = 'N')  
100-4 (is_active = 'N')  

现在有了上面的case语句,这个IG列的排序只能靠前端,但是现在的顺序是:

100-1 (is_active = 'N')  
100-3 (is_active = 'N')  
100-4 (is_active = 'N')  
100-2 (is_active = 'Y')  

这是不正确的,因为 100-2 的后端值显示为 javascript:apex.navigation.dialog(f?p=......') 等而不是 100-2

我该如何解决这个问题?

您可以添加额外的隐藏 html 来影响排序顺序:

'<!--' || MY_LINK_ID || '-->'
|| CASE IS_ACTIVE 
 WHEN 'Y' THEN  '<a href="' || APEX_PAGE.GET_URL(p_page => 22) || '">'||MY_LINK_ID||'</a>' 
 ELSE MY_LINK_ID
END MODAL_LINK