我有问题如何根据列表提升数据。例如,我有一个表字段名称mhn.kod_urusan。我想根据我输入的列表显示结果。问题是数据不符合我在列表中输入的内容。 “和mhn.kod_urusan in('PBPTG','PBMT')”
This is my query:-
select LISTAGG (upper(aa.kod_urusan), ', ') within Group (order by aa.kod_urusan asc) as daerah
from
(select distinct
mhn.kod_urusan,kc.nama nm
from
mohon mhn, kod_urusan ku, kod_caw kc
where
mhn.kod_urusan = ku.kod(+)
and mhn.kod_caw = kc.kod(+)
and (mhn.trh_masuk <= sysdate )
and mhn.kod_urusan in ('PBPTG','PBMT')
and mhn.kod_caw = '01'
order by mhn.kod_urusan asc )aa
This is the result:-
--Daerah--
PBMT, PBPTG
任何人都知道这个问题是什么?
答案 0 :(得分:0)
PBMT比PBPTG短,所以结果还可以
如果您需要自定义排序顺序,则必须向表mohon
添加一些int列,将其设为int myordercol
;
对于kod_urusan
中的所有不同值,您应使用以下查询:
update mohon set myordercol = 1 where kod_urusan='PBPTG';
update mohon set myordercol = 2 where kod_urusan='PBMT';
.. and so on, so in such way you're establishing custom order for this columns
在此之后,您需要通过子句更改您的订单,以将此列用作排序字段
答案 1 :(得分:0)
PBMT,PBPTG按升序排序。如果你想要它反转,排序下降。