0

我有问题如何根据列表提升数据。例如,我有一个表字段名称为 mhn.kod_urusan。我想根据我输入的列表显示结果。问题是数据不符合我在列表中输入的内容。 “和 mhn.kod_urusan 在('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

有谁知道是什么问题?

4

2 回答 2

0

PBMT 比 PBPTG 短,所以结果还可以

如果您需要自定义排序顺序,则必须在 table 中添加一些 int 列mohon,顺其自然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

在此之后,您将需要更改您的 order by 子句以将此列用作排序字段

于 2013-10-23T02:20:38.493 回答
0

PBMT、PBPTG 是升序排列的。如果您希望它反转,请按降序排序。

于 2013-10-23T02:25:27.530 回答