我想用事务ID(TRXID)显示具有块操作的网格控件行。我想添加一个列,例如trxID是146,然后是1,当149,然后是2,当155,1,当162,2.通过本专栏,我将能够使用COLORCOLUMN可视化我的行块。我只会使用两种不同的颜色。有什么建议吗?
TRXID COLUMN1 COLUMN2 COLORCOLUMN
144 .. .. 1
144 .. .. 1
144 .. .. 1
151 .. .. 2
151 .. .. 2
167 .. .. 1
167 .. .. 1
167 .. .. 1
185 .. .. 2
190 .. .. 1以下是我的疑问:
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图为:

发布于 2016-06-29 10:19:30
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。
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发布于 2016-06-28 16:49:45
当列TRXID更改值时,要更改“颜色”。对,是这样?
如果是这样,你可以尝试:
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;对不起,我不能测试它。
https://stackoverflow.com/questions/38051625
复制相似问题