首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按不同事务ID划分的oracle组

按不同事务ID划分的oracle组
EN

Stack Overflow用户
提问于 2016-06-27 10:29:26
回答 2查看 83关注 0票数 0

我想用事务ID(TRXID)显示具有块操作的网格控件行。我想添加一个列,例如trxID是146,然后是1,当149,然后是2,当155,1,当162,2.通过本专栏,我将能够使用COLORCOLUMN可视化我的行块。我只会使用两种不同的颜色。有什么建议吗?

代码语言:javascript
复制
TRXID COLUMN1 COLUMN2 COLORCOLUMN
144   ..      ..      1
144   ..      ..      1
144   ..      ..      1
151   ..      ..      2
151   ..      ..      2
167   ..      ..      1
167   ..      ..      1
167   ..      ..      1
185   ..      ..      2
190   ..      ..      1

以下是我的疑问:

代码语言:javascript
复制
                                     SELECT 
                                        D.TRX_ID TRXID,
                                        A.AGENT_NAME, 
                                        S.NAME SKILL_NAME,
                                        D.SKILL_LEVEL,  
                                        CASE D.CHANGE_TYPE WHEN 'DROP' THEN 'DÜŞÜRME' WHEN 'ADD' THEN 'EKLEME' END CHANGE_TYPE, 
                                        L.LOGIN_NAME,
                                        H.CHANGE_DATE,
                                        --COLORCOLUMN HERE 
                                     FROM CC_RTM_DBA.SKILL_CHANGE_DETAIL_HIST D,
                                        CC_RTM_DBA.SKILL_CHANGE_HIST H,
                                        CC_RTM_DBA.CFG_AGENT A,
                                        CC_RTM_DBA.CFG_SKILL S,
                                        CC_RTM_DBA.CFG_RTM_LOGIN L
                                     WHERE D.TRX_ID = H.ID
                                        AND D.AGENT_ID = A.ID
                                        AND D.SKILL_ID = S.ID
                                        AND L.LOGIN_ID = H.CHANGE_USER
                                     ORDER BY D.TRX_ID DESC, A.AGENT_NAME, SKILL_NAME, CHANGE_TYPE

图为:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-29 10:19:30

您可以结合使用函数职级()国防部()

代码语言:javascript
复制
select trxid, mod(dense_rank() over (order by trxid), 2) as color from t

在下面的例子中,dense_rank()给出了1,1,1,2,2,3,4的值。mod()将偶数值改为1,奇数为0。

代码语言:javascript
复制
with t as (select 144 trxid, '..' c1, '..' c2 from dual union all
           select 144 trxid, '..' c1, '..' c2 from dual union all
           select 144 trxid, '..' c1, '..' c2 from dual union all
           select 151 trxid, '..' c1, '..' c2 from dual union all
           select 151 trxid, '..' c1, '..' c2 from dual union all
           select 167 trxid, '..' c1, '..' c2 from dual union all
           select 185 trxid, '..' c1, '..' c2 from dual)
select trxid, c1, c2, mod(dense_rank() over (order by trxid), 2) as color from t

trxid  c1  c2  color
144    ..  ..      1
144    ..  ..      1
144    ..  ..      1
151    ..  ..      0
151    ..  ..      0
167    ..  ..      1
185    ..  ..      0
票数 1
EN

Stack Overflow用户

发布于 2016-06-28 16:49:45

当列TRXID更改值时,要更改“颜色”。对,是这样?

如果是这样,你可以尝试:

代码语言:javascript
复制
select trxid, ... ,
       LAG(trxid, 1, 0) OVER (ORDER BY trxid), --this is the previous value
       CASE WHEN trxid != LAG(trxid, 1, 0) OVER (ORDER BY trxid)
            THEN 2
            ELSE 1 END as COLORCOLUMN;
from yourtable
order by trxid;

对不起,我不能测试它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38051625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档